[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [UNIKRAFT PATCH, v2, 06/15] lib/ukring: Disable use of cpu_spinwait function
Hi Alexander, Please see inline. On 7/21/20 6:39 PM, Alexander Jung wrote: > This is not currently supported by Unikraft. > > Signed-off-by: Alexander Jung <alexander.jung@xxxxxxxxx> > --- > lib/ukring/include/uk/ring.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/lib/ukring/include/uk/ring.h b/lib/ukring/include/uk/ring.h > index 26ac2f8..f19b13e 100644 > --- a/lib/ukring/include/uk/ring.h > +++ b/lib/ukring/include/uk/ring.h > @@ -111,8 +111,11 @@ uk_ring_enqueue(struct uk_ring *r, void *buf) > * that preceded us, we need to wait for them > * to complete > */ > + /* TODO: Provide cpu_spinwait() */ > +#if 0 > while (r->prod_tail != prod_head) > cpu_spinwait(); Actually waiting for some new ring entry by busy-waiting it's an important feature of buffer rings shared between different execution abstractions. So we should keep this and introduce something similar to cpu_spinwait(). On FreeBSD it actually calls the x86 PAUSE instruction which is smarter way of busy-waiting. > +#endif > > ukarch_store_n(&r->prod_tail, prod_next); > ukplat_lcpu_enable_irq(); > @@ -153,8 +156,11 @@ uk_ring_dequeue_mc(struct uk_ring *r) > * that preceded us, we need to wait for them > * to complete > */ > + /* TODO: Provide cpu_spinwait() */ > +#if 0 > while (r->cons_tail != cons_head) > cpu_spinwait(); > +#endif > > ukarch_store_n(&r->cons_tail, cons_next); > ukplat_lcpu_enable_irq(); >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |