<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:09:26 UTC 2024

It is possible to restrict the fields that are returned in this document by specifying the 'field' parameter in your request.
For example, to request only the issue key and summary append 'field=key&field=summary' to the URL of your request.
-->
<rss version="0.92" >
<channel>
    <title>Whamcloud Community JIRA</title>
    <link>https://jira.whamcloud.com</link>
    <description>This file is an XML representation of an issue</description>
    <language>en-us</language>    <build-info>
        <version>9.4.14</version>
        <build-number>940014</build-number>
        <build-date>05-12-2023</build-date>
    </build-info>


<item>
            <title>[LU-684] replace dev_rdonly kernel patch with dm-flakey</title>
                <link>https://jira.whamcloud.com/browse/LU-684</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;&#160; &#160;#define BIO_RDONLY 31 /* device is readonly */&lt;br/&gt;
 #define BIO_POOL_IDX(bio) ((bio)-&amp;gt;bi_flags &amp;gt;&amp;gt; BIO_POOL_OFFSET)&lt;/p&gt;

&lt;p&gt;void bio_free(struct bio *bio, struct bio_set *bs)&lt;br/&gt;
 {&lt;br/&gt;
 void *p;&lt;/p&gt;

&lt;p&gt;if (bio_has_allocated_vec(bio))&lt;br/&gt;
 bvec_free_bs(bs, bio-&amp;gt;bi_io_vec, BIO_POOL_IDX(bio));&lt;/p&gt;

&lt;p&gt;...&lt;br/&gt;
 BIO_POOL_IDX()&lt;/p&gt;

&lt;p&gt;void bvec_free_bs(struct bio_set *bs, struct bio_vec *bv, unsigned int idx)&lt;br/&gt;
 {&lt;br/&gt;
 BIO_BUG_ON(idx &amp;gt;= BIOVEC_NR_POOLS);&lt;/p&gt;

&lt;p&gt;with RDONLY set BIO_POOL_IDX() can get larger than BIOVEC_NR_POOLS and we hit the assertion.&lt;/p&gt;</description>
                <environment>RHEL6</environment>
        <key id="11774">LU-684</key>
            <summary>replace dev_rdonly kernel patch with dm-flakey</summary>
                <type id="7" iconUrl="https://jira.whamcloud.com/images/icons/issuetypes/task_agile.png">Technical task</type>
                            <parent id="10111">LU-20</parent>
                                    <priority id="2" iconUrl="https://jira.whamcloud.com/images/icons/priorities/critical.svg">Critical</priority>
                        <status id="5" iconUrl="https://jira.whamcloud.com/images/icons/statuses/resolved.png" description="A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.">Resolved</status>
                    <statusCategory id="3" key="done" colorName="success"/>
                                    <resolution id="1">Fixed</resolution>
                                        <assignee username="green">Oleg Drokin</assignee>
                                    <reporter username="bzzz">Alex Zhuravlev</reporter>
                        <labels>
                            <label>cea</label>
                            <label>llnl</label>
                    </labels>
                <created>Wed, 14 Sep 2011 08:33:08 +0000</created>
                <updated>Tue, 10 Apr 2018 06:25:29 +0000</updated>
                            <resolved>Thu, 15 Mar 2018 14:04:25 +0000</resolved>
                                    <version>Lustre 2.4.0</version>
                    <version>Lustre 2.8.0</version>
                                    <fixVersion>Lustre 2.11.0</fixVersion>
                                        <due></due>
                            <votes>0</votes>
                                    <watches>20</watches>
                                                                            <comments>
                            <comment id="20211" author="tappro" created="Wed, 14 Sep 2011 11:00:58 +0000"  >&lt;p&gt;small addition from my side. This is not just theoretical issue, I hit kernel bug during OST recovery testing with rhel6 and ext4. &lt;/p&gt;</comment>
                            <comment id="20213" author="tappro" created="Wed, 14 Sep 2011 11:02:44 +0000"  >&lt;p&gt;comparing rhel6 rdonly patch with rhel5 one I found that flag BIO_RDONLY is not used in rhel5 patch at all. Moreover it is not checked in lustre/rhel6 code also, so I wonder can it be just removed?&lt;/p&gt;</comment>
                            <comment id="20329" author="adilger" created="Fri, 16 Sep 2011 15:59:22 +0000"  >&lt;p&gt;There needs&lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/help_16.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt; to be some mechanism by which the block device can be made to discard writes, so that recovery testing can work.&lt;/p&gt;

&lt;p&gt;That said, dev_read_only() is one of the very last remaining kernel patches that is needed, and getting rid of it would be a huge step toward patchless kernels.  The only other &lt;em&gt;required&lt;/em&gt; patch today is jbd2-jcberr (for the journal commit callback), but &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-433&quot; title=&quot;remove jbd2-jcberr patch from kernel&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-433&quot;&gt;&lt;del&gt;LU-433&lt;/del&gt;&lt;/a&gt; (&lt;a href=&quot;http://review.whamcloud.com/#change,983&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,983&lt;/a&gt;) is ready to remove this patch, and the remaining patches in the RHEL6 kernel series are only for compatibility and/or performance.&lt;/p&gt;

&lt;p&gt;The two uses that I&apos;m aware of that need dev_rdonly functionality are:&lt;/p&gt;
&lt;ul class=&quot;alternate&quot; type=&quot;square&quot;&gt;
	&lt;li&gt;avoiding waiting on the disk for failback of targets.  I&apos;m not sure this is a valid usage, and I recall that Fan Yong may have removed this at some point to fix other problems (filesystem never being clean after unmount)&lt;/li&gt;
	&lt;li&gt;creating a write barrier during failover testing.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;If this could be handled inside the OSD in some manner it would be ideal, but I&apos;m not sure that is possible if there are dependent operations being done.  For example, if &quot;mkdir foo; touch foo/bar&quot; is done then as long as this state is only present in the OSD cache and not on disk, we might be able to drop this patch entirely.  It wouldn&apos;t actually handle testing of interrupted mid-stream transactions, if we have tests that do this today, as opposed to just a write barrier between to filesystem-level operations.&lt;/p&gt;</comment>
                            <comment id="20330" author="adilger" created="Fri, 16 Sep 2011 16:00:43 +0000"  >&lt;p&gt;The other issue is that dev_read_only is not usable for ZFS, because the pool could abort if it is missing commits that it thought were flushed to disk.  I recall that Ricardo was investigating this, but I don&apos;t recall if there was any outcome?&lt;/p&gt;</comment>
                            <comment id="20333" author="bzzz" created="Fri, 16 Sep 2011 23:38:59 +0000"  >&lt;p&gt;there is full-feature &quot;read-only&quot; called freeze in DMU, where basically everything is flushed except uber-block.&lt;/p&gt;

&lt;p&gt;with ldiskfs we easily can get corrupted image because some blocks are purged from the memory while another are not.&lt;/p&gt;</comment>
                            <comment id="22829" author="adilger" created="Thu, 10 Nov 2011 16:09:27 +0000"  >&lt;p&gt;I also note that Linux 3.1 has a &quot;dm-flakey&quot; target for device mapper, which supports a &quot;drop_writes&quot; option that could be used in place of our dev_read_only kernel patch.  This means we would need to configure DM/LVM for all of our testing environments, but it wouldn&apos;t be needed for production use.&lt;/p&gt;</comment>
                            <comment id="27690" author="adilger" created="Tue, 31 Jan 2012 22:57:26 +0000"  >&lt;p&gt;Change topic to reflect that it is now focussed on removing the dev-readonly patch entirely from the kernel patches, since this is one of the few remaining patches that is required for Lustre servers.&lt;/p&gt;</comment>
                            <comment id="51338" author="simmonsja" created="Mon, 28 Jan 2013 11:59:45 +0000"  >&lt;p&gt;With the work going on to support SLES11 SP2 and FC18 the discussion has merged about going a patch less as possible. Now that RHEL5 is no longer supported server side we can move to using dm-flakey. Looking at the current code it seems the dev_read_only_patch is needed to support the OBD_IOC_SET_READONLY ioctl. The approach I&apos;m thinking of is to have the lustre utils call dm-setup to handle setting the disk to read only. The question is does this approach work for ZFS as well?&lt;/p&gt;</comment>
                            <comment id="51339" author="bzzz" created="Mon, 28 Jan 2013 12:09:18 +0000"  >&lt;p&gt;I&apos;d say that ZFS&apos;s approach is better for this purpose because it keep the filesystem consisten being read-only. on ldisks we rely on luck basically, any read on RO-enabled filesystem may lead to wrong/stale data.&lt;/p&gt;</comment>
                            <comment id="51340" author="simmonsja" created="Mon, 28 Jan 2013 12:22:26 +0000"  >&lt;p&gt;You are talking about osd-zfs calling spa_freeze kernel side. So for the ldiskfs case we have to make calls into the dm_flakey kernel driver to support this same functionality.&lt;/p&gt;</comment>
                            <comment id="59101" author="simmonsja" created="Wed, 22 May 2013 19:31:22 +0000"  >&lt;p&gt;Now that the major work of 2.4 is done its time to look at this again. I spent some time looking at using fault injection that Linux supports. In order for this to work some extra setup has to be done on the test box. First the kernel needs to be configured with CONFIG_FAIL_MAKE_REQUEST. Currently RHEL6 kernels only build this for debug kernels. So the first setup is too decided do we want to do lustre testing with debug kernels only or enable this feature with standard kernels being built with lbuild. After that we can handle setting fail_make_request two ways. One is mount debugfs and set the values we want or set the fail_make_request vales on the linux kernel command line.&lt;br/&gt;
For Lustre the latter choice seems the logical one. Either way the options we need to set is &lt;/p&gt;

&lt;p&gt;&amp;lt;interval&amp;gt;,&amp;lt;probability&amp;gt;,&amp;lt;space&amp;gt;,&amp;lt;times&amp;gt;&lt;/p&gt;

&lt;p&gt;For our testing the defaults that make sense are interval=0, probability=100, space=0, times=&amp;#45;1. Once we have that setup then its a matter of flipping make_it_fail in struct hd_struct (blkdev-&amp;gt;-&amp;gt;bd_part).&lt;/p&gt;

&lt;p&gt;As you can see coding would not be difficult to do. Its the setup that would require more work.&lt;/p&gt;</comment>
                            <comment id="60011" author="bzzz" created="Wed, 5 Jun 2013 05:36:45 +0000"  >&lt;p&gt;I do see how dm_flakey can replay rdonly patch, but this approach has been known to bring issues when we need to read data back. would it be possible to skip writes, but save data for subsequent reads ?&lt;/p&gt;</comment>
                            <comment id="60068" author="simmonsja" created="Wed, 5 Jun 2013 22:02:14 +0000"  >&lt;p&gt;Alex can you point me to reproducer for what you are talking about. I just set up my test system to use the fail_make_request code. One thing I don&apos;t see is how are you putting the disk back into read/write mode. I don&apos;t see dev_clear_rdonly being used anywhere.&lt;/p&gt;</comment>
                            <comment id="60076" author="bzzz" created="Thu, 6 Jun 2013 05:27:14 +0000"  >&lt;p&gt;well, we&apos;ve already seen few times this with ldiskfs/mballoc which verifies on-disk structure on load and assert if they don&apos;t match other structures (already in memory).&lt;br/&gt;
dev_clear_rdonly is called in __blkdev_put() at umount time.&lt;/p&gt;</comment>
                            <comment id="60089" author="simmonsja" created="Thu, 6 Jun 2013 14:14:43 +0000"  >&lt;p&gt;After I pieced together the fault injection system I noticed that it disables access to the disk for both reads and writes. Is their a reason why the fail over test set the disk to read access only? If our test case requires blocking writes only then we will have to go with the dm-flaky driver and fix the mballoc issues.&lt;/p&gt;</comment>
                            <comment id="60146" author="bzzz" created="Fri, 7 Jun 2013 06:07:44 +0000"  >&lt;p&gt;yes, the reason is to &quot;forget&quot; writes to simulate poweroff when buffered writes are lost.&lt;/p&gt;</comment>
                            <comment id="60159" author="simmonsja" created="Fri, 7 Jun 2013 11:29:22 +0000"  >&lt;p&gt;Would disabling the reads alter the out come of the fail over tests?&lt;/p&gt;</comment>
                            <comment id="60160" author="bzzz" created="Fri, 7 Jun 2013 11:31:08 +0000"  >&lt;p&gt;I think so. inbetween turning the device read-only and failover we usually still do some processing, which in turn, may need to read something from disk.&lt;/p&gt;</comment>
                            <comment id="60983" author="pjones" created="Fri, 21 Jun 2013 13:55:18 +0000"  >&lt;p&gt;There is a patch in gerrit for this work - &lt;a href=&quot;http://review.whamcloud.com/#/c/6651/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/6651/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="62045" author="ys" created="Wed, 10 Jul 2013 18:13:42 +0000"  >&lt;p&gt;I think we can create a kernel module like loop device. And modify mount_lustre.c to support a option like &apos;-o disw&apos;, Provide a parameter via ioctl() to control this module to discard write or not. This module just can be used in test and avoid it may hurt production environment. After this work done, we can get rid of dev_readonly patch. &lt;/p&gt;</comment>
                            <comment id="62046" author="adilger" created="Wed, 10 Jul 2013 18:30:59 +0000"  >&lt;p&gt;That&apos;s essentially what dm-flakey does, and has the added benefit of being in the kernel already. &lt;/p&gt;</comment>
                            <comment id="62770" author="hongchao.zhang" created="Tue, 23 Jul 2013 03:32:57 +0000"  >&lt;p&gt;there is a panic during using dm-flakey,&lt;/p&gt;

&lt;p&gt;steps:&lt;br/&gt;
echo &quot;0 `blockdev --getsize $realdev` linear $realdev 0&quot; | dmsetup create $md_dev&lt;br/&gt;
(mount lustre with $md_dev)&lt;br/&gt;
echo &quot;0 `blockdev --getsize $realdev` flakey $realdev 0 0 20000 1 drop_writes&quot; | dmsetup load $md_dev&lt;br/&gt;
dmsetup suspend $md_dev&lt;br/&gt;
dmsetup resume $md_dev&lt;/p&gt;


&lt;p&gt;BUG: unable to handle kernel paging request at ffff88015981afff&lt;br/&gt;
IP: &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa00252dc&amp;gt;&amp;#93;&lt;/span&gt; corrupt_bio_data+0x6c/0xb0 &lt;span class=&quot;error&quot;&gt;&amp;#91;dm_flakey&amp;#93;&lt;/span&gt;&lt;br/&gt;
PGD 1a86063 PUD 0 &lt;br/&gt;
Oops: 0002 &lt;a href=&quot;#1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;1&lt;/a&gt; SMP &lt;br/&gt;
last sysfs file: /sys/devices/virtual/block/dm-2/dm/suspended&lt;br/&gt;
CPU 0 &lt;br/&gt;
Modules linked in: dm_flakey lustre(U) ofd(U) osp(U) lod(U) ost(U) mdt(U) osd_ldiskfs(U) fsfilt_ldiskfs(U) ldiskfs(U) exportfs mdd(U) mgs(U) lquota(U) lfsck(U) jbd obdecho(U) mgc(U) lov(U) osc(U) mdc(U) lmv(U) fid(U) fld(U) ptlrpc(U) obdclass(U) lvfs(U) ksocklnd(U) lnet(U) sha512_generic sha256_generic crc32c_intel libcfs(U) ipv6 microcode sg uvcvideo videodev v4l2_compat_ioctl32 i2c_core snd_intel8x0 snd_ac97_codec ac97_bus snd_seq snd_seq_device snd_pcm snd_timer snd soundcore snd_page_alloc iTCO_wdt iTCO_vendor_support virtio_balloon shpchp e1000 ext4 mbcache jbd2 sd_mod crc_t10dif sr_mod cdrom ahci pata_acpi ata_generic ata_piix virtio_pci virtio_ring virtio dm_mirror dm_region_hash dm_log dm_mod &lt;span class=&quot;error&quot;&gt;&amp;#91;last unloaded: scsi_wait_scan&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;Pid: 2544, comm: loop0 Not tainted 2.6.32 #2 Parallels Software International Inc. Parallels Virtual Platform/Parallels Virtual Platform&lt;br/&gt;
RIP: 0010:&lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa00252dc&amp;gt;&amp;#93;&lt;/span&gt;  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa00252dc&amp;gt;&amp;#93;&lt;/span&gt; corrupt_bio_data+0x6c/0xb0 &lt;span class=&quot;error&quot;&gt;&amp;#91;dm_flakey&amp;#93;&lt;/span&gt;&lt;br/&gt;
RSP: 0018:ffff88007c177dd0  EFLAGS: 00010297&lt;br/&gt;
RAX: ffff88005981b000 RBX: 0000000000000000 RCX: 0000000000000000&lt;br/&gt;
RDX: 00000000ffffffff RSI: ffff88005ee42280 RDI: ffff88007910cc00&lt;br/&gt;
RBP: ffff88007c177de0 R08: ffff88007910cc00 R09: 0000000000000000&lt;br/&gt;
R10: 0000000000001000 R11: 0000000000000000 R12: ffff88007910cc00&lt;br/&gt;
R13: ffff88007ac578b8 R14: ffff88007c0b4c00 R15: ffff88007ac41290&lt;br/&gt;
FS:  0000000000000000(0000) GS:ffff88000c400000(0000) knlGS:0000000000000000&lt;br/&gt;
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b&lt;br/&gt;
CR2: ffff88015981afff CR3: 0000000001a85000 CR4: 00000000001406f0&lt;br/&gt;
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000&lt;br/&gt;
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400&lt;br/&gt;
Process loop0 (pid: 2544, threadinfo ffff88007c176000, task ffff88007c3ec040)&lt;br/&gt;
Stack:&lt;br/&gt;
 0000000000000000 ffff880000000000 ffff88007c177e00 ffffffffa0025373&lt;br/&gt;
&amp;lt;d&amp;gt; 0000000000001000 ffff880000000000 ffff88007c177e40 ffffffffa00018af&lt;br/&gt;
&amp;lt;d&amp;gt; 0000100000001000 ffff88007aeea600 ffff88007aeea714 ffff88007c177e80&lt;br/&gt;
Call Trace:&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0025373&amp;gt;&amp;#93;&lt;/span&gt; flakey_end_io+0x53/0x60 &lt;span class=&quot;error&quot;&gt;&amp;#91;dm_flakey&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa00018af&amp;gt;&amp;#93;&lt;/span&gt; clone_endio+0x5f/0xd0 &lt;span class=&quot;error&quot;&gt;&amp;#91;dm_mod&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff811b149d&amp;gt;&amp;#93;&lt;/span&gt; bio_endio+0x1d/0x40&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8135ebff&amp;gt;&amp;#93;&lt;/span&gt; loop_thread+0xdf/0x270&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff810920d0&amp;gt;&amp;#93;&lt;/span&gt; ? autoremove_wake_function+0x0/0x40&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8135eb20&amp;gt;&amp;#93;&lt;/span&gt; ? loop_thread+0x0/0x270&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81091d66&amp;gt;&amp;#93;&lt;/span&gt; kthread+0x96/0xa0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8100c14a&amp;gt;&amp;#93;&lt;/span&gt; child_rip+0xa/0x20&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81091cd0&amp;gt;&amp;#93;&lt;/span&gt; ? kthread+0x0/0xa0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8100c140&amp;gt;&amp;#93;&lt;/span&gt; ? child_rip+0x0/0x20&lt;br/&gt;
Code: 03 48 0f af c1 48 b9 00 00 00 00 00 88 ff ff 48 c1 e0 0c 48 01 c8 48 01 d0 74 08 8b 56 28 44 39 d2 76 02 c9 c3 8b 4e 30 83 ea 01 &amp;lt;88&amp;gt; 0c 10 4c 8b 4f 20 48 8b 07 8b 4e 28 44 89 ca 83 e2 01 83 fa &lt;br/&gt;
RIP  &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa00252dc&amp;gt;&amp;#93;&lt;/span&gt; corrupt_bio_data+0x6c/0xb0 &lt;span class=&quot;error&quot;&gt;&amp;#91;dm_flakey&amp;#93;&lt;/span&gt;&lt;br/&gt;
 RSP &amp;lt;ffff88007c177dd0&amp;gt;&lt;br/&gt;
CR2: ffff88015981afff&lt;br/&gt;
--&lt;del&gt;[ end trace a7cecfc161703a56 ]&lt;/del&gt;--&lt;br/&gt;
Kernel panic - not syncing: Fatal exception&lt;br/&gt;
Pid: 2544, comm: loop0 Tainted: G      D    ---------------    2.6.32 #2&lt;br/&gt;
Call Trace:&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff814fd57a&amp;gt;&amp;#93;&lt;/span&gt; ? panic+0xa0/0x168&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81501714&amp;gt;&amp;#93;&lt;/span&gt; ? oops_end+0xe4/0x100&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81043bab&amp;gt;&amp;#93;&lt;/span&gt; ? no_context+0xfb/0x260&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81043e35&amp;gt;&amp;#93;&lt;/span&gt; ? __bad_area_nosemaphore+0x125/0x1e0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8104f2bd&amp;gt;&amp;#93;&lt;/span&gt; ? check_preempt_curr+0x6d/0x90&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81043f03&amp;gt;&amp;#93;&lt;/span&gt; ? bad_area_nosemaphore+0x13/0x20&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81044661&amp;gt;&amp;#93;&lt;/span&gt; ? __do_page_fault+0x321/0x480&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81060262&amp;gt;&amp;#93;&lt;/span&gt; ? default_wake_function+0x12/0x20&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff810920e6&amp;gt;&amp;#93;&lt;/span&gt; ? autoremove_wake_function+0x16/0x40&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8135d751&amp;gt;&amp;#93;&lt;/span&gt; ? transfer_none+0xa1/0xc0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8135d581&amp;gt;&amp;#93;&lt;/span&gt; ? lo_splice_actor+0x81/0xc0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff811a7829&amp;gt;&amp;#93;&lt;/span&gt; ? page_cache_pipe_buf_release+0x19/0x30&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff810724c7&amp;gt;&amp;#93;&lt;/span&gt; ? current_fs_time+0x27/0x30&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8135d500&amp;gt;&amp;#93;&lt;/span&gt; ? lo_splice_actor+0x0/0xc0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff815036ce&amp;gt;&amp;#93;&lt;/span&gt; ? do_page_fault+0x3e/0xa0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81500a85&amp;gt;&amp;#93;&lt;/span&gt; ? page_fault+0x25/0x30&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa00252dc&amp;gt;&amp;#93;&lt;/span&gt; ? corrupt_bio_data+0x6c/0xb0 &lt;span class=&quot;error&quot;&gt;&amp;#91;dm_flakey&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa0025373&amp;gt;&amp;#93;&lt;/span&gt; ? flakey_end_io+0x53/0x60 &lt;span class=&quot;error&quot;&gt;&amp;#91;dm_flakey&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffffa00018af&amp;gt;&amp;#93;&lt;/span&gt; ? clone_endio+0x5f/0xd0 &lt;span class=&quot;error&quot;&gt;&amp;#91;dm_mod&amp;#93;&lt;/span&gt;&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff811b149d&amp;gt;&amp;#93;&lt;/span&gt; ? bio_endio+0x1d/0x40&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8135ebff&amp;gt;&amp;#93;&lt;/span&gt; ? loop_thread+0xdf/0x270&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff810920d0&amp;gt;&amp;#93;&lt;/span&gt; ? autoremove_wake_function+0x0/0x40&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8135eb20&amp;gt;&amp;#93;&lt;/span&gt; ? loop_thread+0x0/0x270&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81091d66&amp;gt;&amp;#93;&lt;/span&gt; ? kthread+0x96/0xa0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8100c14a&amp;gt;&amp;#93;&lt;/span&gt; ? child_rip+0xa/0x20&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff81091cd0&amp;gt;&amp;#93;&lt;/span&gt; ? kthread+0x0/0xa0&lt;br/&gt;
 &lt;span class=&quot;error&quot;&gt;&amp;#91;&amp;lt;ffffffff8100c140&amp;gt;&amp;#93;&lt;/span&gt; ? child_rip+0x0/0x20&lt;/p&gt;


&lt;p&gt;is there any other means to load the &quot;flakey&quot; table on demand except &quot;suspend&quot;+&quot;resume&quot;?&lt;/p&gt;</comment>
                            <comment id="63046" author="hongchao.zhang" created="Fri, 26 Jul 2013 15:35:21 +0000"  >&lt;p&gt;status update:&lt;/p&gt;

&lt;p&gt;1, the problem in dm-flakey(drivers/md/dm-flakey.c&quot; was found, which &quot;corrupt_bio_data&quot; feature is always applied even it isn&apos;t specified in the table.&lt;br/&gt;
2, the test-framework is modified to use the dm-flakey, and the replay tests pass locally (it&apos;s a little complex for it uses loop device, and these loop device&lt;br/&gt;
   will need to be cleaned up after test)&lt;/p&gt;

&lt;p&gt;the patch still need to some improvement, especially about the creation/deletion of &quot;loop device&quot;(from file) and &quot;dm device&quot;(from normal block device).&lt;/p&gt;</comment>
                            <comment id="63457" author="hongchao.zhang" created="Thu, 1 Aug 2013 11:38:09 +0000"  >&lt;p&gt;the initial patch is tracked at &lt;a href=&quot;http://review.whamcloud.com/#/c/7200/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/7200/&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="63458" author="simmonsja" created="Thu, 1 Aug 2013 11:49:23 +0000"  >&lt;p&gt;So much better than my patch. No kernel side work needed &lt;img class=&quot;emoticon&quot; src=&quot;https://jira.whamcloud.com/images/icons/emoticons/smile.png&quot; height=&quot;16&quot; width=&quot;16&quot; align=&quot;absmiddle&quot; alt=&quot;&quot; border=&quot;0&quot;/&gt;&lt;/p&gt;</comment>
                            <comment id="79584" author="jlevi" created="Tue, 18 Mar 2014 17:47:16 +0000"  >&lt;p&gt;Hongchao,&lt;br/&gt;
Will you be able to refresh this patch for 2.7?&lt;br/&gt;
thank you!&lt;/p&gt;</comment>
                            <comment id="79826" author="hongchao.zhang" created="Thu, 20 Mar 2014 10:53:41 +0000"  >&lt;p&gt;status update:&lt;br/&gt;
the patch is in the test and will push it to Gerrit soon.&lt;/p&gt;</comment>
                            <comment id="82589" author="hongchao.zhang" created="Mon, 28 Apr 2014 11:38:44 +0000"  >&lt;p&gt;the patch has been updated&lt;/p&gt;</comment>
                            <comment id="87526" author="nrutman" created="Wed, 25 Jun 2014 20:42:14 +0000"  >&lt;blockquote&gt;
&lt;p&gt;The two uses that I&apos;m aware of that need dev_rdonly functionality are:&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;avoiding waiting on the disk for failback of targets. I&apos;m not sure this is a valid usage, and I recall that Fan Yong may have removed this at some point to fix other problems (filesystem never being clean after unmount)&lt;/li&gt;
	&lt;li&gt;creating a write barrier during failover testing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;For the first point, you mean avoiding the delay waiting for service shutdown, or avoiding the delay of having to wait for writes to flush before starting the service again (on the other node)?&lt;br/&gt;
Because the &quot;insure writing stops before service restart&quot; seems like a vital requirement, and so I wonder if this functionality can&apos;t live just in the test-framework, but needs to be integrated more closely into Lustre itself; whenever a service is shutdown for failover, the service shutdown should really wait for the writes to flush or drop the writes.&lt;/p&gt;</comment>
                            <comment id="88097" author="simmonsja" created="Thu, 3 Jul 2014 14:59:34 +0000"  >&lt;p&gt;Patch is updated at &lt;a href=&quot;http://review.whamcloud.com/#/c/7200&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#/c/7200&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="88332" author="simmonsja" created="Mon, 7 Jul 2014 17:19:33 +0000"  >&lt;p&gt;I&apos;m running locally with the 7200 patch with no problems but I see issues in Maloo. The logs reported lack important information. Can some look into why this patch is failing when it shouldn&apos;t be.&lt;/p&gt;</comment>
                            <comment id="157864" author="morrone" created="Wed, 6 Jul 2016 18:48:20 +0000"  >&lt;p&gt;I know work is under way on this ticket.  It would be nice to get a status update here, since the last comment was from two years ago.&lt;/p&gt;</comment>
                            <comment id="158079" author="yujian" created="Fri, 8 Jul 2016 01:56:52 +0000"  >&lt;p&gt;Patch &lt;a href=&quot;http://review.whamcloud.com/7200&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/7200&lt;/a&gt; passed local testing on master branch. It&apos;s pending testing by autotest and review.&lt;/p&gt;</comment>
                            <comment id="161729" author="pjones" created="Fri, 12 Aug 2016 13:02:53 +0000"  >&lt;p&gt;I have dropped the priority to Critical rather than Blocker to more accurately reflect the sitaution with this important enhancement &lt;/p&gt;</comment>
                            <comment id="170526" author="pjones" created="Thu, 20 Oct 2016 20:12:53 +0000"  >&lt;p&gt;Work is still ongoing for this effort but may not make 2.9&lt;/p&gt;</comment>
                            <comment id="187172" author="riauxjb" created="Mon, 6 Mar 2017 17:06:01 +0000"  >&lt;p&gt;Can we make sure it lands into 2.10 ?&lt;/p&gt;</comment>
                            <comment id="188261" author="simmonsja" created="Tue, 14 Mar 2017 15:32:57 +0000"  >&lt;p&gt;Jean have you been testing this patch?&lt;/p&gt;</comment>
                            <comment id="188336" author="yujian" created="Tue, 14 Mar 2017 23:18:25 +0000"  >&lt;p&gt;Yes, James. However, testing on the patch is blocked by &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8729&quot; title=&quot;conf-sanity test_84: FAIL: /dev/mapper/mds1_flakey failed to initialize!&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8729&quot;&gt;&lt;del&gt;LU-8729&lt;/del&gt;&lt;/a&gt; now. The issue is:&lt;br/&gt;
 &lt;a href=&quot;https://jira.hpdd.intel.com/browse/LU-8729?focusedCommentId=180716&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-180716&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://jira.hpdd.intel.com/browse/LU-8729?focusedCommentId=180716&amp;amp;page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-180716&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="212126" author="simmonsja" created="Thu, 26 Oct 2017 19:55:18 +0000"  >&lt;p&gt;&lt;a href=&quot;https://jira.whamcloud.com/browse/LU-8729&quot; title=&quot;conf-sanity test_84: FAIL: /dev/mapper/mds1_flakey failed to initialize!&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-8729&quot;&gt;&lt;del&gt;LU-8729&lt;/del&gt;&lt;/a&gt; no longer blocks this patch. Its been tested and reviewed.&lt;/p&gt;</comment>
                            <comment id="215336" author="simmonsja" created="Tue, 5 Dec 2017 17:31:41 +0000"  >&lt;p&gt;Is it still planned to land this work for 2.11?&lt;/p&gt;</comment>
                            <comment id="223705" author="gerrit" created="Thu, 15 Mar 2018 13:54:09 +0000"  >&lt;p&gt;Oleg Drokin (oleg.drokin@intel.com) merged in patch &lt;a href=&quot;https://review.whamcloud.com/7200/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;https://review.whamcloud.com/7200/&lt;/a&gt;&lt;br/&gt;
Subject: &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-684&quot; title=&quot;replace dev_rdonly kernel patch with dm-flakey&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-684&quot;&gt;&lt;del&gt;LU-684&lt;/del&gt;&lt;/a&gt; tests: replace dev_read_only patch with dm-flakey&lt;br/&gt;
Project: fs/lustre-release&lt;br/&gt;
Branch: master&lt;br/&gt;
Current Patch Set: &lt;br/&gt;
Commit: 54b9e3f789358bd9dfb94b77fe33a4faa1e28ab2&lt;/p&gt;</comment>
                            <comment id="223724" author="pjones" created="Thu, 15 Mar 2018 14:04:25 +0000"  >&lt;p&gt;Landed for 2.11&lt;/p&gt;</comment>
                    </comments>
                <issuelinks>
                            <issuelinktype id="10120">
                    <name>Blocker</name>
                                                                <inwardlinks description="is blocked by">
                                        <issuelink>
            <issuekey id="40800">LU-8729</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                            <issuelinktype id="10011">
                    <name>Related</name>
                                            <outwardlinks description="is related to ">
                                        <issuelink>
            <issuekey id="22582">LU-4416</issuekey>
        </issuelink>
                            </outwardlinks>
                                                                <inwardlinks description="is related to">
                                        <issuelink>
            <issuekey id="51729">LU-10893</issuekey>
        </issuelink>
            <issuelink>
            <issuekey id="43738">LU-9111</issuekey>
        </issuelink>
                            </inwardlinks>
                                    </issuelinktype>
                    </issuelinks>
                <attachments>
                    </attachments>
                <subtasks>
                    </subtasks>
                <customfields>
                                                                                                                                                                <customfield id="customfield_10890" key="com.atlassian.jira.plugins.jira-development-integration-plugin:devsummary">
                        <customfieldname>Development</customfieldname>
                        <customfieldvalues>
                            
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                                                        <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzvcgv:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>5605</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                            <customfield id="customfield_10002" key="com.atlassian.jira.plugin.system.customfieldtypes:float">
                        <customfieldname>Story Points</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>2.0</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                        </customfields>
    </item>
</channel>
</rss>