public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
From: Corinna Vinschen <corinna-cygwin@cygwin.com>
To: cygwin@cygwin.com
Cc: Achim Gratz <Stromeko@nexgo.de>
Subject: Re: vmstat yields error 'Unable to create system stat structure' on W11x64
Date: Mon, 16 Jan 2023 14:08:21 +0100	[thread overview]
Message-ID: <Y8VMRejAHv8BgwDB@calimero.vinschen.de> (raw)
In-Reply-To: <Y8UksJ4O2q1+SZn5@calimero.vinschen.de>

On Jan 16 11:19, Corinna Vinschen via Cygwin wrote:
> On Jan 15 22:04, System Administrator via Cygwin wrote:
> > Hello,
> > 
> > I am trying to migrate my framework to Windows 11 running Cygwin.
> > When executing vmstat it returns the following error:
> > 
> > "Unable to create system stat structure”
> > [...]
> I don't think this has anything to do with Windows10 or 11, but with the
> version of procps-ng you're running.
> 
> I tried vmstat from procps-ng-4.0.2-1 on both, W10 and W11, and I got
> the above error in both cases.
> 
> I switched back to procps-ng-3.3.17-1 and vmstat worked fine on both,
> W10 and W11.
> 
> I ran vmstat from procps-ng-4.0.2-1 under GDB and found that this
> vmstat tries to dynamically load libnuma.so or libnuma.1.so, both
> of which are naturally not available on Cygwin.  So I guess vmstat
> from procps-ng-4.x still needs another patch.

While that's obviously wrong, it's not the problem.  It turns out that
vmstat from procps-ng 4.0.2 stumbles over the fact, that /proc/cpuinfo
only prints the following fields if the CPU is a multi core CPU:

  "physical id"
  "siblings",
  "core id"
  "cpu cores"
  "apicid"
  "initial apicid"

On Linux the output of those fields only depends on the configuration
of the kernel.  If it has been built with CONFIG_SMP, these fields are
part of the /proc/cpuinfo output.

On Cygwin, the output of these fields actually depends on the fact if
the HTT CPU flag is set or not.  If not, it's not a multi core CPU and
the aforementioned fields are omitted.

I could reproduce this issue by changing the CPU topology in my QEMU/KVM
Windows 10 machine.  The default topology was 4 CPUs with 1 core and 1
thread each.  I changed that to 2 CPUs with 2 cores and 1 thread each.
After restarting the W10 machine, vmstat from procps-ng 4.0.2 started
working as desired.

So we can fix this issue by tweaking Cygwin instead.  I guess this will
be fodder for the upcoming 3.4.4 release.

I'll also provide a test release in a bit, stay tuned.

Achim, I still wonder if vmstat shouldn't also work on Linux if the
kernel hasn't been built with CONFIG_SMP.  Does the vmstat code fail
to take that into account?


Corinna

  parent reply	other threads:[~2023-01-16 13:08 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-15 22:04 System Administrator
2023-01-15 22:19 ` Adam Dinwoodie
2023-01-15 23:35   ` System Administrator
2023-01-16  8:45     ` Brian Inglis
2023-01-16  9:34       ` System Administrator
2023-01-16 10:19 ` Corinna Vinschen
2023-01-16 12:55   ` ASSI
2023-01-16 13:08   ` Corinna Vinschen [this message]
2023-01-16 18:47     ` Corinna Vinschen
2023-01-16 19:37     ` Achim Gratz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Y8VMRejAHv8BgwDB@calimero.vinschen.de \
    --to=corinna-cygwin@cygwin.com \
    --cc=Stromeko@nexgo.de \
    --cc=cygwin@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).