lkml.org 
[lkml]   [2023]   [Feb]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v3 1/2] io_uring: Move from hlist to io_wq_work_node
Hello Krisman, thanks for the review

On Thu, Feb 23, 2023 at 04:02:25PM -0300, Gabriel Krisman Bertazi wrote:
> Breno Leitao <leitao@debian.org> writes:

> > static inline struct io_cache_entry *io_alloc_cache_get(struct io_alloc_cache *cache)
> > {
> > - if (!hlist_empty(&cache->list)) {
> > - struct hlist_node *node = cache->list.first;
> > + if (cache->list.next) {
> > + struct io_cache_entry *entry;
> >
> > - hlist_del(node);
> > - return container_of(node, struct io_cache_entry, node);
> > + entry = container_of(cache->list.next, struct io_cache_entry, node);
> > + cache->list.next = cache->list.next->next;
> > + return entry;
> > }
>
> From a quick look, I think you could use wq_stack_extract() here

True, we can use wq_stack_extract() in this patch, but, we would need to
revert to back to this code in the next patch. Remember that
wq_stack_extract() touches the stack->next->next, which will be
poisoned, causing a KASAN warning.

Here is relevant part of the code:

struct io_wq_work_node *wq_stack_extract(struct io_wq_work_node *stack)
{
struct io_wq_work_node *node = stack->next;
stack->next = node->next;

\
 
 \ /
  Last update: 2023-03-27 00:34    [W:0.088 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site