[Libguestfs] [nbdkit PATCH v2 15/17] sh: Enable parallel thread model, when possible

Eric Blake eblake at redhat.com
Fri Aug 2 20:27:06 UTC 2019


On 8/2/19 2:55 PM, Richard W.M. Jones wrote:

>> +++ b/plugins/sh/nbdkit-sh-plugin.pod
>> @@ -189,12 +189,11 @@ one of C<"serialize_connections">, C<"serialize_all_requests">,
>>  C<"serialize_requests">, or C<"parallel">.
>>
>>  This method is I<not> required; if omitted, then the plugin will be
>> -executed under the default sh thread model (currently
>> -C<"serialize_all_requests">, which implies this callback only makes a
>> -difference with an output of C<"serialize_connections">; look for
>> -'max_thread_model' in C<nbdkit --dump-plugin sh>).  If an error
>> -occurs, the script should output an error message and exit with status
>> -C<1>; unrecognized output is ignored.
>> +executed under the default sh thread model (either C<"parallel"> or
>> +C<"serialize_all_requests">, based on whether the platform supports
>> +L<pipe2(2)>; look for 'max_thread_model' in C<nbdkit --dump-plugin
>> +sh>).  If an error occurs, the script should output an error message
>> +and exit with status C<1>; unrecognized output is ignored.
> 
> I'm not sure we should change the default (although by all means
> change our existing shell plugins so they explicitly set the thread
> model to parallel).  One reason I think this is because we've
> advertised that people can use handles to create a temporary directory
> for saving state, and that's likely to break if the thread model
> changes.

Makes sense. So the change will be:

 - compile-time THREAD_MODEL = PARALLEL (necessary, as otherwise a
script can't request parallel)
 - if script declares .thread_model, then use that mode (any mode
possible, whereas older nbdkit silently downgrades parallel to
serialize_all_requests per the older compile-time max)
 - if script does not declare .thread_model, then use
SERIALIZE_ALL_REQUESTS (matching historical behavior)

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20190802/5e3843d8/attachment.sig>


More information about the Libguestfs mailing list