mbox series

[0/7] SUNRPC - queuing improvements.

Message ID 20230818014512.26880-1-neilb@suse.de (mailing list archive)
Headers show
Series SUNRPC - queuing improvements. | expand

Message

NeilBrown Aug. 18, 2023, 1:45 a.m. UTC
This series is against topic-sunrpc-thread-scheduling (7fddd9be200c).
There are two changes since last post (other than dropping patches
that have been included in the topic branch.

1/ When I dropped the test on freezing(current), need needed to
   add TASK_FREEZABLE to the wait state.  I could keep testing
   freezing(current) before calling schedule, but TASK_FREEZABLE
   is cleaner and seems to be prefered ... except ...

   /proc/PID/stat reports a status for "D" for tasks that are
      TASK_IDLE | TASK_FREEZABLE
   instead of the correct "I".  I've included a fix for that in
   the relevant patch.  I should probably post is separately
   to the scheduler team.

2/ There was a bug in lwq_dequeue().  It tested lwq_empty() without
   taking the spinlock.  This could result in call-positive results
   if it raced with another lwq_dequeue(). So lwq_dequeue() now
   ensure the queue never looks transiently empty.
   lwq_empty() is also more careful about memory ordering.

NeilBrown

 [PATCH 1/7] SUNRPC: change service idle list to be an llist
 [PATCH 2/7] SUNRPC: only have one thread waking up at a time
 [PATCH 3/7] SUNRPC/svc: add light-weight queuing mechanism.
 [PATCH 4/7] SUNRPC: use lwq for sp_sockets - renamed to sp_xprts
 [PATCH 5/7] SUNRPC: change sp_nrthreads to atomic_t
 [PATCH 6/7] SUNRPC: discard sp_lock
 [PATCH 7/7] SUNRPC: change the back-channel queue to lwq