lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <89b495cb-1867-a539-cfaa-97ad1e519201@linux.alibaba.com>
Date:   Fri, 9 Jun 2023 22:25:12 +0800
From:   Xianting Tian <xianting.tian@...ux.alibaba.com>
To:     Greg KH <gregkh@...uxfoundation.org>
Cc:     arei.gonglei@...wei.com, mst@...hat.com, jasowang@...hat.com,
        xuanzhuo@...ux.alibaba.com, herbert@...dor.apana.org.au,
        davem@...emloft.net, amit@...nel.org, arnd@...db.de,
        marcel@...tmann.org, johan.hedberg@...il.com, luiz.dentz@...il.com,
        linux-bluetooth@...r.kernel.org,
        virtualization@...ts.linux-foundation.org,
        linux-crypto@...r.kernel.org, linux-kernel@...r.kernel.org,
        Xianting Tian <tianxianting.txt@...baba-inc.com>
Subject: Re: [PATCH 1/3] virtio-crypto: fixup potential cpu stall when free
 unused bufs


在 2023/6/9 下午10:05, Greg KH 写道:
> On Fri, Jun 09, 2023 at 09:49:39PM +0800, Xianting Tian wrote:
>> 在 2023/6/9 下午9:41, Greg KH 写道:
>>> On Fri, Jun 09, 2023 at 03:39:24PM +0200, Greg KH wrote:
>>>> On Fri, Jun 09, 2023 at 09:18:15PM +0800, Xianting Tian wrote:
>>>>> From: Xianting Tian <tianxianting.txt@...baba-inc.com>
>>>>>
>>>>> Cpu stall issue may happen if device is configured with multi queues
>>>>> and large queue depth, so fix it.
>>>>>
>>>>> Signed-off-by: Xianting Tian <xianting.tian@...ux.alibaba.com>
>>>>> ---
>>>>>    drivers/crypto/virtio/virtio_crypto_core.c | 1 +
>>>>>    1 file changed, 1 insertion(+)
>>>>>
>>>>> diff --git a/drivers/crypto/virtio/virtio_crypto_core.c b/drivers/crypto/virtio/virtio_crypto_core.c
>>>>> index 1198bd306365..94849fa3bd74 100644
>>>>> --- a/drivers/crypto/virtio/virtio_crypto_core.c
>>>>> +++ b/drivers/crypto/virtio/virtio_crypto_core.c
>>>>> @@ -480,6 +480,7 @@ static void virtcrypto_free_unused_reqs(struct virtio_crypto *vcrypto)
>>>>>    			kfree(vc_req->req_data);
>>>>>    			kfree(vc_req->sgs);
>>>>>    		}
>>>>> +		cond_resched();
>>>> that's not "fixing a stall", it is "call the scheduler because we are
>>>> taking too long".  The CPU isn't stalled at all, just busy.
>>>>
>>>> Are you sure this isn't just a bug in the code?  Why is this code taking
>>>> so long that you have to force the scheduler to run?  This is almost
>>>> always a sign that something else needs to be fixed instead.
>>> And same comment on the other 2 patches, please fix this properly.
>>>
>>> Also, this is a tight loop that is just freeing memory, why is it taking
>>> so long?  Why do you want it to take longer (which is what you are doing
>>> here), ideally it would be faster, not slower, so you are now slowing
>>> down the system overall with this patchset, right?
>> yes, it is the similar fix with one for virtio-net
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/net/virtio_net.c?h=v6.4-rc5&id=f8bb5104394560e29017c25bcade4c6b7aabd108 <https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/net/virtio_net.c?h=v6.4-rc5&id=f8bb5104394560e29017c25bcade4c6b7aabd108>
> I would argue that this too is incorrect, because why does freeing
> memory take so long?  And again, you are making it take longer, is that
> ok?

Yes, it may take longer, but I think it's no harms.

As the queue numbers and queue's depth are uncertain, it depends on 
user's configuration. It may take more times in kernel space to free all 
queues without schedule, so it has the risk to cause other task starve


>
> thanks,
>
> greg k-h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ