This may slow down sustained reads from softraid1 volume which consists of drives w/ enabled read-ahead caches. Just a guess, no tests performed.
2013/11/8 Ted Unangst <t...@tedunangst.com> > This may be a bad idea. I can't really think of any pros or cons, > other than a general principle of "when feasible, prefer random over > deterministic". > > > > Index: softraid_raid1.c > =================================================================== > RCS file: /cvs/src/sys/dev/softraid_raid1.c,v > retrieving revision 1.54 > diff -u -p -r1.54 softraid_raid1.c > --- softraid_raid1.c 1 Nov 2013 17:36:19 -0000 1.54 > +++ softraid_raid1.c 7 Nov 2013 14:32:33 -0000 > @@ -350,8 +350,8 @@ sr_raid1_rw(struct sr_workunit *wu) > rt = 0; > ragain: > /* interleave reads */ > - chunk = sd->mds.mdd_raid1.sr1_counter++ % > - sd->sd_meta->ssdi.ssd_chunk_no; > + chunk = > + > arc4random_uniform(sd->sd_meta->ssdi.ssd_chunk_no); > scp = sd->sd_vol.sv_chunks[chunk]; > switch (scp->src_meta.scm_status) { > case BIOC_SDONLINE: > Index: softraidvar.h > =================================================================== > RCS file: /cvs/src/sys/dev/softraidvar.h,v > retrieving revision 1.140 > diff -u -p -r1.140 softraidvar.h > --- softraidvar.h 4 Nov 2013 21:02:57 -0000 1.140 > +++ softraidvar.h 7 Nov 2013 14:32:33 -0000 > @@ -417,7 +417,7 @@ struct sr_raid0 { > /* RAID 1 */ > #define SR_RAID1_NOWU 16 > struct sr_raid1 { > - u_int32_t sr1_counter; > + u_int32_t sr1_unused; > }; > > /* RAID 4 */ > >