Re: [Libguestfs] [libnbd PATCH 1/2] utils: Slightly simplify human_size()

2023-10-07 Thread Richard W.M. Jones
On Fri, Oct 06, 2023 at 10:18:08AM -0500, Eric Blake wrote:
> Use an array of characters instead of strings for less .data storage.
> Merge the loop conditional for fewer lines of code.
> 
> Signed-off-by: Eric Blake 
> ---
>  common/include/human-size.h | 14 ++
>  1 file changed, 6 insertions(+), 8 deletions(-)
> 
> diff --git a/common/include/human-size.h b/common/include/human-size.h
> index 47729c3c..8b1e0132 100644
> --- a/common/include/human-size.h
> +++ b/common/include/human-size.h
> @@ -159,7 +159,7 @@ human_size_parse (const char *str,
>  static inline char *
>  human_size (char *buf, uint64_t bytes, bool *human)
>  {
> -  static const char ext[][2] = { "E", "P", "T", "G", "M", "K", "" };
> +  static const char ext[] = "EPTGMK";
>size_t i;
> 
>if (buf == NULL) {
> @@ -170,18 +170,16 @@ human_size (char *buf, uint64_t bytes, bool *human)
> 
>/* Work out which extension to use, if any. */
>i = 6;
> -  if (bytes != 0) {
> -while ((bytes & 1023) == 0) {
> -  bytes >>= 10;
> -  i--;
> -}
> +  while (bytes && (bytes & 1023) == 0) {
> +bytes >>= 10;
> +i--;
>}
> 
>/* Set the flag to true if we're going to add a human-readable extension. 
> */
>if (human)
> -*human = ext[i][0] != '\0';
> +*human = ext[i] != '\0';
> 
> -  snprintf (buf, HUMAN_SIZE_LONGEST, "%" PRIu64 "%s", bytes, ext[i]);
> +  snprintf (buf, HUMAN_SIZE_LONGEST, "%" PRIu64 "%.1s", bytes, [i]);
>return buf;
>  }

Reviewed-by: Richard W.M. Jones 

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW
___
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs



Re: [Libguestfs] [libnbd PATCH 2/2] info: Show human sizes for block_size values

2023-10-07 Thread Richard W.M. Jones
On Fri, Oct 06, 2023 at 10:18:09AM -0500, Eric Blake wrote:
> Adding a human-readable size for block constraints is useful.  For:
> 
> $ ./run nbdinfo -- [ nbdkit memory \
>--filter=blocksize-policy blocksize-preferred=32k 1M ] | grep pref
> 
> this changes pre-patch:
>   block_size_preferred: 32768
> to post-patch:
>   block_size_preferred: 32768 (32K)

I think info/nbdinfo.pod needs to be updated.

Rich.

> Signed-off-by: Eric Blake 
> ---
>  info/show.c | 26 +++---
>  1 file changed, 19 insertions(+), 7 deletions(-)
> 
> diff --git a/info/show.c b/info/show.c
> index 6aeffb54..ac483f34 100644
> --- a/info/show.c
> +++ b/info/show.c
> @@ -35,6 +35,7 @@
>  #include "nbdinfo.h"
> 
>  static void show_boolean (const char *name, bool cond);
> +static void show_size (const char *name, int64_t size);
>  static int collect_context (void *opaque, const char *name);
>  static char *get_content (struct nbd_handle *, int64_t size);
> 
> @@ -181,13 +182,9 @@ show_one_export (struct nbd_handle *nbd, const char 
> *desc,
>show_boolean ("can_trim", can_trim);
>  if (can_zero >= 0)
>show_boolean ("can_zero", can_zero);
> -if (block_minimum > 0)
> -  fprintf (fp, "\t%s: %" PRId64 "\n", "block_size_minimum", 
> block_minimum);
> -if (block_preferred > 0)
> -  fprintf (fp, "\t%s: %" PRId64 "\n", "block_size_preferred",
> -   block_preferred);
> -if (block_maximum > 0)
> -  fprintf (fp, "\t%s: %" PRId64 "\n", "block_size_maximum", 
> block_maximum);
> +show_size ("block_size_minimum", block_minimum);
> +show_size ("block_size_preferred", block_preferred);
> +show_size ("block_size_maximum", block_maximum);
>}
>else {
>  if (first)
> @@ -304,6 +301,21 @@ show_boolean (const char *name, bool cond)
>ansi_restore (fp);
>  }
> 
> +/* Used for displaying sizes in non-JSON output. */
> +void show_size (const char *name, int64_t size)
> +{
> +  char size_str[HUMAN_SIZE_LONGEST];
> +  bool human_size_flag = false;
> +
> +  if (size > 0) {
> +human_size (size_str, size, _size_flag);
> +if (human_size_flag)
> +  fprintf (fp, "\t%s: %" PRId64 " (%s)\n", name, size, size_str);
> +else
> +  fprintf (fp, "\t%s: %" PRId64 "\n", name, size);
> +  }
> +}
> +
>  static int
>  collect_context (void *opaque, const char *name)
>  {
> -- 
> 2.41.0
> 
> ___
> Libguestfs mailing list
> Libguestfs@redhat.com
> https://listman.redhat.com/mailman/listinfo/libguestfs

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
nbdkit - Flexible, fast NBD server with plugins
https://gitlab.com/nbdkit/nbdkit
___
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs



Re: [Libguestfs] Fwd: virt-v2v creating image that does not install guest agent on first boot

2023-10-07 Thread Ming Xie
Hi Richard,

On Thu, Sep 28, 2023 at 7:54 PM Richard W.M. Jones 
wrote:

> On Thu, Sep 28, 2023 at 07:41:55PM +0800, Ming Xie wrote:
> > Hi Richard,
> >
> > On Thu, Sep 28, 2023 at 6:14 PM Richard W.M. Jones 
> wrote:
> >
> > Ming,
> >
> > For some reason the build seems "stuck" at the moment, but
> > if it finishes could you see if this fixes the RHEL 9 case?
> >
> > https://kojihub.stream.centos.org/koji/taskinfo?taskID=2879547
> >
> >
> > Sure, no problem, but I don't see the package available now, I will
> check later.
>
> The build seems stuck.  I asked on the RHEL mailing list
> if someone can look at it.
>
> > BTW, is there a bug for this issue?
>
> Not at the moment.
>

I filed a bug https://issues.redhat.com/browse/RHEL-12104 to track the
issue in downstream, thanks!

Regards
Ming Xie
___
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs