[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+55aFwNByHq+OG5QmL4V2fXeduFHbTVOct6X0REHFRoLsrpdg@mail.gmail.com>
Date: Sat, 19 May 2018 13:56:45 -0700
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Roman Pen <roman.penyaev@...fitbricks.com>
Cc: Paul McKenney <paulmck@...ux.vnet.ibm.com>,
linux-block <linux-block@...r.kernel.org>,
linux-rdma <linux-rdma@...r.kernel.org>,
Jens Axboe <axboe@...nel.dk>,
Christoph Hellwig <hch@...radead.org>,
Sagi Grimberg <sagi@...mberg.me>,
Bart Van Assche <bart.vanassche@...disk.com>,
Or Gerlitz <ogerlitz@...lanox.com>,
Doug Ledford <dledford@...hat.com>,
swapnil.ingle@...fitbricks.com, danil.kipnis@...fitbricks.com,
jinpu.wang@...fitbricks.com,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH v2 01/26] rculist: introduce list_next_or_null_rr_rcu()
On Sat, May 19, 2018 at 1:21 PM Roman Penyaev <
roman.penyaev@...fitbricks.com> wrote:
> I need -rr behaviour for doing IO load-balancing when I choose next RDMA
> connection from the list in order to send a request, i.e. my code is
> something like the following:
[ incomplete pseudoicode ]
> i.e. usage of the @next pointer is under an RCU critical section.
That's not enough. The whole chain to look up the pointer you are taking
'next' of needs to be under RCU, and that's not clear from your example.
It's *probably* the case, but basically you have to prove that the starting
point is still on the same RCU list. That wasn't clear from your example.
The above is (as Paul said) true of list_next_rcu() too, so it's not like
this is anything specific to the 'rr' version.
Linus
Powered by blists - more mailing lists