[rds-devel] [PATCH net-next 0/2] rds: use RCU between work-enqueue and connection teardown

David Miller davem at davemloft.net
Fri Jan 5 10:39:35 PST 2018


From: Sowmini Varadhan <sowmini.varadhan at oracle.com>
Date: Thu,  4 Jan 2018 06:52:58 -0800

> This patchset follows up on the root-cause mentioned in
> https://urldefense.proofpoint.com/v2/url?u=https-3A__www.spinics.net_lists_netdev_msg472849.html&d=DwICAg&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=B4XfHLZoQjxmOkoH011Paddn0sny__aLx9Okab1TW7U&m=gVOmyu4mLwFsrLFkRDiINuGHTbSkFlkfm6v6pHdLRbw&s=FTFwevHpyfw73LZbDZVL0ltk55CPFvQuwjGrVZfIOtg&e=
> 
> Patch1 implements some code refactoring that was suggeseted
> as an enhancement in https://urldefense.proofpoint.com/v2/url?u=http-3A__patchwork.ozlabs.org_patch_843157_&d=DwICAg&c=RoP1YumCXCgaWHvlZYR8PZh8Bv7qIrMUB65eapI_JnE&r=B4XfHLZoQjxmOkoH011Paddn0sny__aLx9Okab1TW7U&m=gVOmyu4mLwFsrLFkRDiINuGHTbSkFlkfm6v6pHdLRbw&s=Sp1wbx5ae7bEq3wThvvF0CADqeLivGZVJ3vttIr87-M&e=
> It replaces the c_destroy_in_prog bit in rds_connection with 
> an atomically managed flag in rds_conn_path.
> 
> Patch2 builds on Patch1 and uses RCU to make sure that 
> work is only enqueued if the connection destroy is not already
> in progress: the test-flag-and-enqueue is done under rcu_read_lock,
> while destroy first sets the flag, uses synchronize_rcu to 
> wait for existing reader threads to complete, and then starts
> all the work-cancellation.
> 
> Since I have not been able to reproduce the original stack traces
> reported by syszbot, and these are fixes for a race condition that
> are based on code-inspection I am not marking these as reported-by 
> at this time.

Series applied, thank you.



More information about the rds-devel mailing list