Whamcloud - gitweb
Implement cancel thread:
authoradilger <adilger>
Tue, 3 Jun 2003 07:51:16 +0000 (07:51 +0000)
committeradilger <adilger>
Tue, 3 Jun 2003 07:51:16 +0000 (07:51 +0000)
commit218d3458d72622ac07dbc33c6066a3c8309e30f3
tree81631855450cad7be158a1376b7dee3208c68cf5
parenta935bbe36eb1a43f86c78c892a45046b26ad88b0
Implement cancel thread:
- we only start two threads to begin with
- new threads are started if it is possible that all threads will be blocked,
  up to a predefined maximum number of threads (should be ~num_osts)
- cookie pages are kept in a pool (refilled by the threads normally), but if
  the pool is empty and we need a page we try a GFP_ATOMIC allocation
- donot block the cookie commit callback when sending log cancels

Todo
- start up first commit callback thread on the MDS
- figure out where to stash llog_commit_parent pointer (ideally in MDS, since
  it is the one who will be allocating it and starting the thread, but we
  need it when sending the cancel cookies).  Parameter to obd_log_cancel?
- clean up all commit callback threads at shutdown
- emulate "no recovery" behaviour of osc_brw_prep_request()/osc_brw_internal()
  so the cancel thread can detect OST failures and start MDS<->OST recovery
lustre/include/linux/lustre_commit_confd.h
lustre/obdclass/recov_log.c
lustre/obdclass/recov_thread.c [new file with mode: 0644]