On 2017/2/18 上午4:00, Shaohua Li wrote: > On Sat, Feb 18, 2017 at 03:05:56AM +0800, colyli@xxxxxxx wrote: [snip] >> Changelog >> V4: >> - Add alloc_r1bio() to remove redundant r1bio memory allocation code. >> - Fix many typos in patch comments. >> - Use (PAGE_SHIFT - ilog2(sizeof(int))) to define BARRIER_BUCKETS_NR_BITS. >> V3: >> - Rebase the patch against latest upstream kernel code. >> - Many fixes by review comments from Neil, >> - Back to use pointers to replace arraries in struct r1conf >> - Remove total_barriers from struct r1conf >> - Add more patch comments to explain how/why the values of >> BARRIER_UNIT_SECTOR_SIZE and BARRIER_BUCKETS_NR are decided. >> - Use get_unqueued_pending() to replace get_all_pendings() and >> get_all_queued() >> - Increase bucket number from 512 to 1024 >> - Change code comments format by review from Shaohua. >> V2: >> - Use bio_split() to split the orignal bio if it goes across barrier unit >> bounday, to make the code more simple, by suggestion from Shaohua and >> Neil. >> - Use hash_long() to replace original linear hash, to avoid a possible >> confilict between resync I/O and sequential write I/O, by suggestion from >> Shaohua. >> - Add conf->total_barriers to record barrier depth, which is used to >> control number of parallel sync I/O barriers, by suggestion from Shaohua. >> - In V1 patch the bellowed barrier buckets related members in r1conf are >> allocated in memory page. To make the code more simple, V2 patch moves >> the memory space into struct r1conf, like this, >> - int nr_pending; >> - int nr_waiting; >> - int nr_queued; >> - int barrier; >> + int nr_pending[BARRIER_BUCKETS_NR]; >> + int nr_waiting[BARRIER_BUCKETS_NR]; >> + int nr_queued[BARRIER_BUCKETS_NR]; >> + int barrier[BARRIER_BUCKETS_NR]; >> This change is by the suggestion from Shaohua. >> - Remove some inrelavent code comments, by suggestion from Guoqing. >> - Add a missing wait_barrier() before jumping to retry_write, in >> raid1_make_write_request(). >> V1: >> - Original RFC patch for comments > > Thanks, I applied the two patches. For the deadlock issue Neil pointed out, I > don't want it to hold this patch, we can fix it later after we figured out how > to fix. The r1bio allocation is guaranteed to success because it's mempool > allocation, so I deleted the warn statement. Good to know this, yes please delete the warn message line. Thanks. Coly -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html