[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <D8FFAFCB-5486-4211-9AC8-2779AE368183@gmail.com>
Date: Mon, 17 Apr 2023 15:50:46 +0800
From: Li Feng <lifeng1519@...il.com>
To: Ming Lei <ming.lei@...hat.com>
Cc: Keith Busch <kbusch@...nel.org>, Jens Axboe <axboe@...com>,
Christoph Hellwig <hch@....de>,
Sagi Grimberg <sagi@...mberg.me>,
"open list:NVM EXPRESS DRIVER" <linux-nvme@...ts.infradead.org>,
linux-kernel <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2] nvme/tcp: Add support to set the tcp worker cpu
affinity
> 2023年4月17日 下午3:37,Ming Lei <ming.lei@...hat.com> 写道:
>
> On Thu, Apr 13, 2023 at 09:29:41PM +0800, Li Feng wrote:
>> The default worker affinity policy is using all online cpus, e.g. from 0
>> to N-1. However, some cpus are busy for other jobs, then the nvme-tcp will
>> have a bad performance.
>
> Can you explain in detail how nvme-tcp performs worse in this situation?
>
> If some of CPUs are knows as busy, you can submit the nvme-tcp io jobs
> on other non-busy CPUs via taskset, or scheduler is supposed to choose
> proper CPUs for you. And usually nvme-tcp device should be saturated
> with limited io depth or jobs/cpus.
>
>
> Thanks,
> Ming
>
Taskset can’t work on nvme-tcp io-queues, because the worker cpu has decided at the nvme-tcp ‘connect’ stage,
not the sending io stage. Assume there is only one io-queue, the binding cpu is CPU0, no matter io jobs
run other cpus.
Powered by blists - more mailing lists