svn commit: r358181 - head/usr.sbin/pstat
csjp at ion.sqrt.ca
csjp at ion.sqrt.ca
Thu Feb 20 21:15:29 UTC 2020
To be clear, the before and after should have read:
Before:
$ swapinfo -h
Device 1K-blocks Used Avail Capacity
/dev/gpt/swapfs 1048576 0B 1.0G 0%
$
After:
$ swapinfo -h
Device Size Used Avail Capacity
/dev/gpt/swapfs 1.0G 0B 1.0G 0%
$
On Thu, Feb 20, 2020 at 09:12:10PM +0000, Christian S.J. Peron wrote:
> Author: csjp
> Date: Thu Feb 20 21:12:10 2020
> New Revision: 358181
> URL: https://svnweb.freebsd.org/changeset/base/358181
>
> Log:
> - Implement -h (human readable) for the size of the underlying block disk.
> Currently, the size of the swap device is unconditionally reported using
> blocks, even if -h has been used.
> - While here, switch to CONVERT_BLOCKS() instead of CONVERT() which will
> avoid overflowing size counters (in human readable form see: r196244)
> - Update the column headers to reflect that a size is being reported instead
> of the block size units being used
>
> Before:
>
> $ swapinfo
> Device 1K-blocks Used Avail Capacity
> /dev/gpt/swapfs 1048576 0 1048576 0%
> $
>
> After:
>
> $ swapinfo -h
> Device Size Used Avail Capacity
> /dev/gpt/swapfs 1.0G 0B 1.0G 0%
> $
>
> Differential Revision: https://reviews.freebsd.org/D23758
> Reviewed by: kevans
> MFC after: 3 weeks
>
> Modified:
> head/usr.sbin/pstat/pstat.c
>
> Modified: head/usr.sbin/pstat/pstat.c
> ==============================================================================
> --- head/usr.sbin/pstat/pstat.c Thu Feb 20 21:07:23 2020 (r358180)
> +++ head/usr.sbin/pstat/pstat.c Thu Feb 20 21:12:10 2020 (r358181)
> @@ -95,6 +95,8 @@ static struct {
> #define NNAMES (sizeof(namelist) / sizeof(*namelist))
> static struct nlist nl[NNAMES];
>
> +#define SIZEHDR "Size"
> +
> static int humanflag;
> static int usenumflag;
> static int totalflag;
> @@ -471,7 +473,12 @@ print_swap_header(void)
> long blocksize;
> const char *header;
>
> - header = getbsize(&hlen, &blocksize);
> + if (humanflag) {
> + header = SIZEHDR;
> + hlen = sizeof(SIZEHDR);
> + } else {
> + header = getbsize(&hlen, &blocksize);
> + }
> if (totalflag == 0)
> (void)printf("%-15s %*s %8s %8s %8s\n",
> "Device", hlen, header,
> @@ -484,23 +491,30 @@ print_swap_line(const char *swdevname, intmax_t nblks,
> {
> char usedbuf[5];
> char availbuf[5];
> + char sizebuf[5];
> int hlen, pagesize;
> long blocksize;
>
> pagesize = getpagesize();
> getbsize(&hlen, &blocksize);
>
> - printf("%-15s %*jd ", swdevname, hlen, CONVERT(nblks));
> + printf("%-15s ", swdevname);
> if (humanflag) {
> + humanize_number(sizebuf, sizeof(sizebuf),
> + CONVERT_BLOCKS(nblks), "",
> + HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL);
> humanize_number(usedbuf, sizeof(usedbuf),
> CONVERT_BLOCKS(bused), "",
> HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL);
> humanize_number(availbuf, sizeof(availbuf),
> CONVERT_BLOCKS(bavail), "",
> HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL);
> - printf("%8s %8s %5.0f%%\n", usedbuf, availbuf, bpercent);
> + printf("%8s %8s %8s %5.0f%%\n", sizebuf,
> + usedbuf, availbuf, bpercent);
> } else {
> - printf("%8jd %8jd %5.0f%%\n", (intmax_t)CONVERT(bused),
> + printf("%*jd %8jd %8jd %5.0f%%\n", hlen,
> + (intmax_t)CONVERT(nblks),
> + (intmax_t)CONVERT(bused),
> (intmax_t)CONVERT(bavail), bpercent);
> }
> }
More information about the svn-src-all
mailing list