[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command |
Date: |
Mon, 16 Jan 2012 14:10:42 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:9.0) Gecko/20111222 Thunderbird/9.0 |
On 01/16/2012 01:19 PM, Luiz Capitulino wrote:
>> memset(), strlen, strcpy, and friends in <string.h> are all in the class
>> of functions that I think are unintentional omissions from the list of
>> async-signal-safe functions (they don't read/modify anything but the
>> pointers passed in, so the _only_ reason I can think of why they _might_
>> have been omitted from the list is that there might be some machine
>> state that could be observably different if you were interrupted in the
>> middle of one of these operations, such as a processor flag bit when
>> using a rep prefix on x86 controlling which direction to move, but no
>> one has ever pointed me to a definitive answer to why they were omitted).
>
> If this is right we shouldn't be using them then...
The _nice_ thing is that the functions in <string.h> are trivially
replaceable by naive variants that _are_ async-signal-safe, since the
algorithms behind them are so trivial. It's just that it's annoying to
have to tell users that they have to write non-optimized code when doing
string ops in a signal handler or after a fork (C code tends to not be
as nice as the hand-tuned assembly in glibc for all these low-level
functions), for what so far appears to be a theoretical rather than a
confirmed restriction on why the standard does not require async-safety.
I guess it's time for me to follow through with my threat to file a bug
against the POSIX folks to get the string functions added to the list of
async-signal-safe, and/or give me stronger justification why they are
not already there.
--
Eric Blake address@hidden +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, (continued)
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Luiz Capitulino, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Daniel P. Berrange, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Luiz Capitulino, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Luiz Capitulino, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Michael Roth, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Daniel P. Berrange, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Michael Roth, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Jamie Lokier, 2012/01/17
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Eric Blake, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Luiz Capitulino, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command,
Eric Blake <=
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Jamie Lokier, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Eric Blake, 2012/01/16
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Jamie Lokier, 2012/01/17
- Re: [Qemu-devel] [PATCH 2/2] qemu-ga: Add the guest-suspend command, Eric Blake, 2012/01/18
[Qemu-devel] [PATCH 1/2] qemu-ga: set O_NONBLOCK for serial channels, Luiz Capitulino, 2012/01/13