/proc/partitions: add some space to avoid ragged output format

Thomas Wolff towo@towo.net
Tue Mar 3 06:22:00 GMT 2020


Am 03.03.2020 um 00:26 schrieb Brian Inglis:
> Hi Thomas,
>
> In this industry, you plan ahead a bit further and longer: you need to go for at
> least a three digit increase (below) or more; legacy 8TB HDDs are cheap and
> common, 20TB are available, 100TB SSDs are available now (#blocks 97656250000 -
> 11 digits), capacity is expanding *faster* than HDDs:
>
> https://www.tomshardware.com/news/100tb-ssd-nimbus-sata-flash,36687.html
>
> and speeds now exceed 6GB/s and 1M IO/s.
>
> We're also at 64C/128T 6GHz (overclocked) chips with 256MB L3 and L4 caches,
> 256GB memory, and over the next decade, feature sizes dropping by an order of
> magnitude from 14nm to 1.4nm, with corresponding increases, so maintainers
> should consider capacity increases when they look at code.
>
> To make this easier next time ;^> I'd define a couple of formats:
>
> #define PROC_PARTITION_HDR	"%5s %5s %12s %s\n\n"
> #define PROC_PARTITION_FMT	"%5d %5d %12U %s\n"
>
> or simplify the code further with:
>
> #define PROC_PARTITION_HDR	"%5s %5s %12s %-6s %-s\n\n"
> #define PROC_PARTITION_FMT	"%5d %5d %12U %-6s %-s\n"
>
> and sprintf the header into the buffer:
>
> -	  print ("major minor  #blocks  name   win-mounts\n\n");
> +	  bufptr += __small_sprintf (bufptr, PROC_PARTITION_HDR,
> +				    "major", "minor", "#blocks",
> +				    "name   win-mounts\n\n");
>
> *or*
>
> -	  print ("major minor  #blocks  name   win-mounts\n\n");
> +	  bufptr += __small_sprintf (bufptr, PROC_PARTITION_HDR,
> +				    "major", "minor", "#blocks",
> +				    "name", "win-mounts\n\n");
>
Hi Brian,
yes, I thought about factoring out the format as well, but then only 
submitted a quick-and-dirty patch.
If you're suggesting a more solid solution, would you submit your patch?
Thomas


> On 2020-03-02 14:39, Thomas Wolff wrote:
>
> ---
>   winsup/cygwin/fhandler_proc.cc | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/winsup/cygwin/fhandler_proc.cc b/winsup/cygwin/fhandler_proc.cc
> index 605a8443f..3373f3ef5 100644
> --- a/winsup/cygwin/fhandler_proc.cc
> +++ b/winsup/cygwin/fhandler_proc.cc
> @@ -1491,7 +1491,7 @@ format_proc_partitions (void *, char *&destbuf)
>   	}
>         if (!got_one)
>   	{
> -	  print ("major minor  #blocks  name   win-mounts\n\n");
> +	  print ("major minor    #blocks   name   win-mounts\n\n");
>   	  got_one = true;
>   	}
>         /* Fetch partition info for the entire disk to get its size. */
> @@ -1514,7 +1514,7 @@ format_proc_partitions (void *, char *&destbuf)
>   	  size = 0;
>   	}
>         device dev (drive_num, 0);
> -      bufptr += __small_sprintf (bufptr, "%5d %5d %9U %s\n",
> +      bufptr += __small_sprintf (bufptr, "%5d %5d %12U %s\n",
>   				 dev.get_major (), dev.get_minor (),
>   				 size >> 10, dev.name () + 5);
>         /* Fetch drive layout info to get size of all partitions on the disk. */
> @@ -1561,7 +1561,7 @@ format_proc_partitions (void *, char *&destbuf)
>   	      continue;
>   	    device dev (drive_num, part_num);
>
> -	    bufptr += __small_sprintf (bufptr, "%5d %5d %9U %s",
> +	    bufptr += __small_sprintf (bufptr, "%5d %5d %12U %s",
>   				       dev.get_major (), dev.get_minor (),
>   				       size >> 10, dev.name () + 5);
>   	    /* Check if the partition is mounted in Windows and, if so,
>



More information about the Cygwin-patches mailing list