[Devel] [PATCH RH9 v4 01/10] drivers/vhost: vhost-blk accelerator for virtio-blk guests

Andrey Zhadchenko andrey.zhadchenko at virtuozzo.com
Fri Nov 4 15:57:30 MSK 2022


Cool, thanks!
________________________________
От: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
Отправлено: 4 ноября 2022 г. 15:56
Кому: Andrey Zhadchenko <andrey.zhadchenko at virtuozzo.com>
Копия: devel at openvz.org <devel at openvz.org>; Konstantin Khorenko <khorenko at virtuozzo.com>
Тема: Re: [PATCH RH9 v4 01/10] drivers/vhost: vhost-blk accelerator for virtio-blk guests



On 04.11.2022 15:28, Andrey Zhadchenko wrote:
>
>
> On 11/4/22 14:31, Pavel Tikhomirov wrote:
>>
>>
>> On 01.11.2022 10:25, Andrey Zhadchenko wrote:
>>> +/* It is forbidden to call more than one vhost_blk_flush()
>>> simultaneously */
>>> +static void vhost_blk_flush(struct vhost_blk *blk)
>>> +{
>>> +    int flush_bin;
>>> +
>>> +    spin_lock(&blk->flush_lock);
>>> +    blk->during_flush = 1;
>>> +    flush_bin = blk->new_req_bin;
>>> +    blk->new_req_bin = (blk->new_req_bin) ? 0 : 1;
>>
>> We can use shorter and simpler expression for this:
>>
>> blk->new_req_bin = !blk->new_req_bin;
>
> Are you sure C standard actually defines it this way and we are not
> relying on unspecified behavior?
> I thought ! operator only defined for logical expressions

C99 6.5.3.3.5 says:
"The result of the logical negation operator ! is 0 if the value of its
operand compares
unequal to 0, 1 if the value of its operand compares equal to 0. The
result has type int.
The expression !E is equivalent to (0==E)"
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf

So I don't see any problem comparing new_req_bin of type int to 0.

>
>>
>>> +    spin_unlock(&blk->flush_lock);
>>

--
Best regards, Tikhomirov Pavel
Software Developer, Virtuozzo.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvz.org/pipermail/devel/attachments/20221104/3e088dc1/attachment-0001.html>


More information about the Devel mailing list