Messages in this thread | | | Date | Wed, 29 Mar 2017 12:55:36 +0200 | From | Michal Hocko <> | Subject | Re: [PATCH 4.4 48/76] libceph: force GFP_NOIO for socket allocations |
| |
On Wed 29-03-17 12:41:26, Michal Hocko wrote: [...] > > ceph_con_workfn > > mutex_lock(&con->mutex) # ceph_connection::mutex > > try_write > > ceph_tcp_connect > > sock_create_kern > > GFP_KERNEL allocation > > allocator recurses into XFS, more I/O is issued
One more note. So what happens if this is a GFP_NOIO request which cannot make any progress? Your IO thread is blocked on con->mutex as you write below but the above thread cannot proceed as well. So I am _really_ not sure this acutally helps.
[...] > > > > rbd_queue_workfn > > ceph_osdc_start_request > > mutex_lock(&osdc->request_mutex); > > ceph_con_send > > mutex_lock(&con->mutex) # deadlock
-- Michal Hocko SUSE Labs
| |