Re: [Libguestfs] [libnbd PATCH 1/2] utils: Slightly simplify human_size()
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
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
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