<!-- 
RSS generated by JIRA (9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c) at Sat Feb 10 01:14:53 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-1243] Lustre 2.1.1 client stack overrun</title>
                <link>https://jira.whamcloud.com/browse/LU-1243</link>
                <project id="10000" key="LU">Lustre</project>
                    <description>&lt;p&gt;During I/O testing we hit a client stack overrun on a Lustre 2.1.1 client.  We have the &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-969&quot; title=&quot;2.1 client stack overruns&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-969&quot;&gt;&lt;del&gt;LU-969&lt;/del&gt;&lt;/a&gt; stack reduction patch in our local branch.  The stacktrace looks very similar to the one reported for &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-969&quot; title=&quot;2.1 client stack overruns&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-969&quot;&gt;&lt;del&gt;LU-969&lt;/del&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;2012-03-18 06:05:23 BUG: unable to handle kernel paging request at 000000032cbc7960
2012-03-18 06:05:23 IP: [&amp;lt;ffffffff81052814&amp;gt;] update_curr+0x144/0x1f0
2012-03-18 06:05:23 PGD 417be5067 PUD 0
2012-03-18 06:05:23 Thread overran stack, or stack corrupted
2012-03-18 06:05:23 Oops: 0000 [#1] SMP
2012-03-18 06:05:23 last sysfs file: /sys/devices/system/cpu/cpu31/online
2012-03-18 06:05:23 CPU 6
2012-03-18 06:05:23 Modules linked in: xt_owner nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack lmv(U) mgc(U)
lustre(U) lov(U) osc(U) lquota(U) mdc(U) fid(U) fld(U) ptlrpc(U) obdclass(U) lvfs(U) acpi_cpufreq freq_table mperf
ko2iblnd(U) lnet(U) libcfs(U) ipt_LOG xt_multiport iptable_filter ip_tables ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad
rdma_cm ib_cm iw_cm ib_addr ib_sa dm_mirror dm_region_hash dm_log dm_mod vhost_net macvtap macvlan tun kvm uinput sg
sd_mod crc_t10dif isci libsas scsi_transport_sas ahci microcode sb_edac edac_core iTCO_wdt iTCO_vendor_support i2c_i801
i2c_core ib_qib(U) ib_mad ib_core wmi ioatdma ipv6 nfs lockd fscache nfs_acl auth_rpcgss sunrpc igb dca [last unloaded:
cpufreq_ondemand]
2012-03-18 06:05:23
2012-03-18 06:05:23 Pid: 68872, comm: lmp Not tainted 2.6.32-220.7.1.3chaos.ch5.x86_64 #1 appro appro-512x/S2600JF
2012-03-18 06:05:23 RIP: 0010:[&amp;lt;ffffffff81052814&amp;gt;]  [&amp;lt;ffffffff81052814&amp;gt;] update_curr+0x144/0x1f0
2012-03-18 06:05:23 RSP: 0018:ffff8800366c3db8  EFLAGS: 00010086
2012-03-18 06:05:23 RAX: ffff8808334c9580 RBX: 00000000755fa0c8 RCX: ffff880437f111c0
2012-03-18 06:05:23 RDX: 0000000000018b48 RSI: 0000000000000000 RDI: ffff8808334c95b8
2012-03-18 06:05:23 RBP: ffff8800366c3de8 R08: ffffffff8160b665 R09: 0000000000000000
2012-03-18 06:05:23 R10: 0000000000000010 R11: 0000000000000000 R12: ffff8800366d5fe8
2012-03-18 06:05:23 R13: 00000000000f3c4d R14: 000081fe1182f6c5 R15: ffff8808334c9580
2012-03-18 06:05:23 FS:  00002aaaacfd0800(0000) GS:ffff8800366c0000(0000) knlGS:0000000000000000
2012-03-18 06:05:23 CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
2012-03-18 06:05:23 CR2: 000000032cbc7960 CR3: 0000000326499000 CR4: 00000000000406e0
2012-03-18 06:05:23 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
2012-03-18 06:05:23 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
2012-03-18 06:05:23 Process lmp (pid: 68872, threadinfo ffff8807755fa000, task ffff8808334c9580)
2012-03-18 06:05:23 Stack:
2012-03-18 06:05:23  ffff8800366c3dc8 ffffffff81013783 ffff8808334c95b8 ffff8800366d5fe8
2012-03-18 06:05:23 &amp;lt;0&amp;gt; 0000000000000000 0000000000000000 ffff8800366c3e18 ffffffff81052e2b
2012-03-18 06:05:23 &amp;lt;0&amp;gt; ffff8800366d5f80 0000000000000006 0000000000015f80 0000000000000006
2012-03-18 06:05:23 Call Trace:
2012-03-18 06:05:23  &amp;lt;IRQ&amp;gt;
2012-03-18 06:05:23  [&amp;lt;ffffffff81013783&amp;gt;] ? native_sched_clock+0x13/0x80
2012-03-18 06:05:23  [&amp;lt;ffffffff81052e2b&amp;gt;] task_tick_fair+0xdb/0x160
2012-03-18 06:05:23  [&amp;lt;ffffffff81056891&amp;gt;] scheduler_tick+0xc1/0x260
2012-03-18 06:05:23  [&amp;lt;ffffffff810a0e70&amp;gt;] ? tick_sched_timer+0x0/0xc0
2012-03-18 06:05:23  [&amp;lt;ffffffff8107c512&amp;gt;] update_process_times+0x52/0x70
2012-03-18 06:05:23  [&amp;lt;ffffffff810a0ed6&amp;gt;] tick_sched_timer+0x66/0xc0
2012-03-18 06:05:23  [&amp;lt;ffffffff8109555e&amp;gt;] __run_hrtimer+0x8e/0x1a0
2012-03-18 06:05:23  [&amp;lt;ffffffff81012b59&amp;gt;] ? read_tsc+0x9/0x20
2012-03-18 06:05:23  [&amp;lt;ffffffff81095906&amp;gt;] hrtimer_interrupt+0xe6/0x250
2012-03-18 06:05:23  [&amp;lt;ffffffff814f6f0b&amp;gt;] smp_apic_timer_interrupt+0x6b/0x9b
2012-03-18 06:05:23  [&amp;lt;ffffffff8100bc13&amp;gt;] apic_timer_interrupt+0x13/0x20
2012-03-18 06:05:23  &amp;lt;EOI&amp;gt;
2012-03-18 06:05:23  [&amp;lt;ffffffff8112adbe&amp;gt;] ? shrink_inactive_list+0x2de/0x740
2012-03-18 06:05:23  [&amp;lt;ffffffff8112ad72&amp;gt;] ? shrink_inactive_list+0x292/0x740
2012-03-18 06:05:23  [&amp;lt;ffffffff8112baef&amp;gt;] shrink_zone+0x38f/0x520
2012-03-18 06:05:23  [&amp;lt;ffffffff8112c894&amp;gt;] zone_reclaim+0x354/0x410
2012-03-18 06:05:23  [&amp;lt;ffffffff8112d4e0&amp;gt;] ? isolate_pages_global+0x0/0x350
2012-03-18 06:05:23  [&amp;lt;ffffffff81122d94&amp;gt;] get_page_from_freelist+0x694/0x820
2012-03-18 06:05:23  [&amp;lt;ffffffffa0475b6f&amp;gt;] ? cfs_hash_bd_from_key+0x3f/0xc0 [libcfs]
2012-03-18 06:05:23  [&amp;lt;ffffffffa05d4232&amp;gt;] ? lu_object_put+0x92/0x200 [obdclass]
2012-03-18 06:05:23  [&amp;lt;ffffffff811337c9&amp;gt;] ? zone_statistics+0x99/0xc0
2012-03-18 06:05:23  [&amp;lt;ffffffff81124011&amp;gt;] __alloc_pages_nodemask+0x111/0x940
2012-03-18 06:05:23  [&amp;lt;ffffffff8115e592&amp;gt;] kmem_getpages+0x62/0x170
2012-03-18 06:05:23  [&amp;lt;ffffffff8115ebff&amp;gt;] cache_grow+0x2cf/0x320
2012-03-18 06:05:23  [&amp;lt;ffffffff8115ee52&amp;gt;] cache_alloc_refill+0x202/0x240
2012-03-18 06:05:23  [&amp;lt;ffffffffa0469863&amp;gt;] ? cfs_alloc+0x63/0x90 [libcfs]
2012-03-18 06:05:23  [&amp;lt;ffffffff8115fb79&amp;gt;] __kmalloc+0x1a9/0x220
2012-03-18 06:05:23  [&amp;lt;ffffffffa0469863&amp;gt;] cfs_alloc+0x63/0x90 [libcfs]
2012-03-18 06:05:23  [&amp;lt;ffffffffa0702237&amp;gt;] ptlrpc_request_alloc_internal+0x167/0x360 [ptlrpc]
2012-03-18 06:05:23  [&amp;lt;ffffffffa070243e&amp;gt;] ptlrpc_request_alloc_pool+0xe/0x10 [ptlrpc]
2012-03-18 06:05:23  [&amp;lt;ffffffffa08d684b&amp;gt;] osc_brw_prep_request+0x1ab/0xcc0 [osc]
2012-03-18 06:05:23  [&amp;lt;ffffffffa08e7fbb&amp;gt;] ? osc_req_attr_set+0xfb/0x250 [osc]
2012-03-18 06:05:23  [&amp;lt;ffffffffa09f7638&amp;gt;] ? ccc_req_attr_set+0x78/0x150 [lustre]
2012-03-18 06:05:23  [&amp;lt;ffffffffa05e4e81&amp;gt;] ? cl_req_attr_set+0xd1/0x1a0 [obdclass]
2012-03-18 06:05:23  [&amp;lt;ffffffffa05e476c&amp;gt;] ? cl_req_prep+0x8c/0x130 [obdclass]
2012-03-18 06:05:23  [&amp;lt;ffffffffa08d821d&amp;gt;] osc_send_oap_rpc+0xebd/0x1690 [osc]
2012-03-18 06:05:23  [&amp;lt;ffffffffa08d17a6&amp;gt;] ? loi_list_maint+0xa6/0x130 [osc]
2012-03-18 06:05:23  [&amp;lt;ffffffffa08d8c9e&amp;gt;] osc_check_rpcs+0x2ae/0x3b0 [osc]
2012-03-18 06:05:23  [&amp;lt;ffffffffa08e86df&amp;gt;] osc_io_submit+0x1df/0x4a0 [osc]
2012-03-18 06:05:23  [&amp;lt;ffffffffa05e4938&amp;gt;] cl_io_submit_rw+0x78/0x130 [obdclass]
2012-03-18 06:05:23  [&amp;lt;ffffffffa094160f&amp;gt;] lov_io_submit+0x2bf/0x9d0 [lov]
2012-03-18 06:05:23  [&amp;lt;ffffffffa05e4938&amp;gt;] cl_io_submit_rw+0x78/0x130 [obdclass]
2012-03-18 06:05:23  [&amp;lt;ffffffffa09ddf15&amp;gt;] ll_writepage+0x205/0x3b0 [lustre]
2012-03-18 06:05:23  [&amp;lt;ffffffff8112a34b&amp;gt;] pageout.clone.1+0x12b/0x300
2012-03-18 06:05:23  [&amp;lt;ffffffff81129a01&amp;gt;] ? __remove_mapping+0x61/0x160
2012-03-18 06:05:23  [&amp;lt;ffffffff8112a8d2&amp;gt;] shrink_page_list.clone.0+0x3b2/0x5c0
2012-03-18 06:05:23  [&amp;lt;ffffffff811280bc&amp;gt;] ? release_pages+0x6c/0x250
2012-03-18 06:05:23  [&amp;lt;ffffffff8116804d&amp;gt;] ? mem_cgroup_del_lru_list+0x2d/0xc0
2012-03-18 06:05:23  [&amp;lt;ffffffff81168169&amp;gt;] ? mem_cgroup_del_lru+0x39/0x40
2012-03-18 06:05:23  [&amp;lt;ffffffff811689ae&amp;gt;] ? mem_cgroup_isolate_pages+0xee/0x1d0
2012-03-18 06:05:23  [&amp;lt;ffffffff8112addb&amp;gt;] shrink_inactive_list+0x2fb/0x740
2012-03-18 06:05:23  [&amp;lt;ffffffff8112baef&amp;gt;] shrink_zone+0x38f/0x520
2012-03-18 06:05:23  [&amp;lt;ffffffff811a0e4d&amp;gt;] ? bdi_queue_work+0x7d/0x110
2012-03-18 06:05:23  [&amp;lt;ffffffff8112bd7e&amp;gt;] do_try_to_free_pages+0xfe/0x520
2012-03-18 06:05:23  [&amp;lt;ffffffff8112c2ec&amp;gt;] try_to_free_mem_cgroup_pages+0x8c/0x90
2012-03-18 06:05:23  [&amp;lt;ffffffff811688c0&amp;gt;] ? mem_cgroup_isolate_pages+0x0/0x1d0
2012-03-18 06:05:23  [&amp;lt;ffffffff8116a450&amp;gt;] mem_cgroup_hierarchical_reclaim+0x2f0/0x460
2012-03-18 06:05:23  [&amp;lt;ffffffff8116b992&amp;gt;] __mem_cgroup_try_charge+0x202/0x460
2012-03-18 06:05:23  [&amp;lt;ffffffff811241e7&amp;gt;] ? __alloc_pages_nodemask+0x2e7/0x940
2012-03-18 06:05:23  [&amp;lt;ffffffff8116c4e7&amp;gt;] mem_cgroup_charge_common+0x87/0xd0
2012-03-18 06:05:23  [&amp;lt;ffffffff8116c658&amp;gt;] mem_cgroup_cache_charge+0x128/0x140
2012-03-18 06:05:23  [&amp;lt;ffffffff8111161a&amp;gt;] add_to_page_cache_locked+0x4a/0x140
2012-03-18 06:05:23  [&amp;lt;ffffffff8111173c&amp;gt;] add_to_page_cache_lru+0x2c/0x80
2012-03-18 06:05:23  [&amp;lt;ffffffff811122f9&amp;gt;] grab_cache_page_write_begin+0x99/0xc0
2012-03-18 06:05:23  [&amp;lt;ffffffffa09efa98&amp;gt;] ll_write_begin+0x58/0x170 [lustre]
2012-03-18 06:05:23  [&amp;lt;ffffffff81111b7e&amp;gt;] generic_file_buffered_write+0x10e/0x2a0
2012-03-18 06:05:23  [&amp;lt;ffffffff81070637&amp;gt;] ? current_fs_time+0x27/0x30
2012-03-18 06:05:23  [&amp;lt;ffffffff811134d0&amp;gt;] __generic_file_aio_write+0x250/0x480
2012-03-18 06:05:23  [&amp;lt;ffffffffa05d8d95&amp;gt;] ? cl_env_info+0x15/0x20 [obdclass]
2012-03-18 06:05:23  [&amp;lt;ffffffff8111376f&amp;gt;] generic_file_aio_write+0x6f/0xe0
2012-03-18 06:05:23  [&amp;lt;ffffffffa09fdf9e&amp;gt;] vvp_io_write_start+0x9e/0x1e0 [lustre]
2012-03-18 06:05:23  [&amp;lt;ffffffffa05e4a5a&amp;gt;] cl_io_start+0x6a/0x100 [obdclass]
2012-03-18 06:05:23  [&amp;lt;ffffffffa05e8094&amp;gt;] cl_io_loop+0xd4/0x160 [obdclass]
2012-03-18 06:05:23  [&amp;lt;ffffffffa09ba43b&amp;gt;] ll_file_io_generic+0x3bb/0x4b0 [lustre]
2012-03-18 06:05:23  [&amp;lt;ffffffffa09bf4ec&amp;gt;] ll_file_aio_write+0x13c/0x280 [lustre]
2012-03-18 06:05:23  [&amp;lt;ffffffffa09bf79c&amp;gt;] ll_file_write+0x16c/0x290 [lustre]
2012-03-18 06:05:23  [&amp;lt;ffffffff81177ae8&amp;gt;] vfs_write+0xb8/0x1a0
2012-03-18 06:05:23  [&amp;lt;ffffffff811784f1&amp;gt;] sys_write+0x51/0x90
2012-03-18 06:05:23  [&amp;lt;ffffffff8100b0f2&amp;gt;] system_call_fastpath+0x16/0x1b
2012-03-18 06:05:23 Code: 00 8b 15 cc 36 a4 00 85 d2 74 34 48 8b 50 08 8b 5a 18 48 8b 90 10 09 00 00 48 8b 4a 50 48 85
c9 74 1d 48 63 db 66 90 48 8b 51 20 &amp;lt;48&amp;gt; 03 14 dd 20 73 bf 81 4c 01 2a 48 8b 49 78 48 85 c9 75 e8 48
2012-03-18 06:05:23 RIP  [&amp;lt;ffffffff81052814&amp;gt;] update_curr+0x144/0x1f0
2012-03-18 06:05:23  RSP &amp;lt;ffff8800366c3db8&amp;gt;
2012-03-18 06:05:23 CR2: 000000032cbc7960
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;</description>
                <environment>&lt;a href=&quot;https://github.com/chaos/lustre/commits/2.1.1-llnl&quot;&gt;https://github.com/chaos/lustre/commits/2.1.1-llnl&lt;/a&gt;</environment>
        <key id="13631">LU-1243</key>
            <summary>Lustre 2.1.1 client stack overrun</summary>
                <type id="1" iconUrl="https://jira.whamcloud.com/secure/viewavatar?size=xsmall&amp;avatarId=11303&amp;avatarType=issuetype">Bug</type>
                                            <priority id="4" iconUrl="https://jira.whamcloud.com/images/icons/priorities/minor.svg">Minor</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="5">Cannot Reproduce</resolution>
                                        <assignee username="hongchao.zhang">Hongchao Zhang</assignee>
                                    <reporter username="nedbass">Ned Bass</reporter>
                        <labels>
                            <label>llnl</label>
                    </labels>
                <created>Tue, 20 Mar 2012 13:33:20 +0000</created>
                <updated>Mon, 29 May 2017 03:36:21 +0000</updated>
                            <resolved>Mon, 29 May 2017 03:36:20 +0000</resolved>
                                    <version>Lustre 2.1.1</version>
                                                        <due></due>
                            <votes>0</votes>
                                    <watches>4</watches>
                                                                            <comments>
                            <comment id="31617" author="pjones" created="Tue, 20 Mar 2012 19:22:52 +0000"  >&lt;p&gt;Hongchao&lt;/p&gt;

&lt;p&gt;Could you please comment on this one?&lt;/p&gt;

&lt;p&gt;Thanks&lt;/p&gt;

&lt;p&gt;Peter&lt;/p&gt;</comment>
                            <comment id="31624" author="hongchao.zhang" created="Tue, 20 Mar 2012 22:42:48 +0000"  >&lt;p&gt;it&apos;s similar with &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-969&quot; title=&quot;2.1 client stack overruns&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-969&quot;&gt;&lt;del&gt;LU-969&lt;/del&gt;&lt;/a&gt;, except this one goes a little further, we should use less stack space in our client IO layers.&lt;br/&gt;
there are some places which can reduce the stack by ~100 bytes, will attach a patch soon, but the better solution should be&lt;br/&gt;
moving datas in OSC layer into lu_env, e.g.&lt;/p&gt;

&lt;p&gt;static int osc_brw_prep_request(int cmd, struct client_obd *cli,struct obdo *oa,&lt;br/&gt;
                                struct lov_stripe_md *lsm, obd_count page_count,&lt;br/&gt;
                                struct brw_page **pga,&lt;br/&gt;
                                struct ptlrpc_request **reqp,&lt;br/&gt;
                                struct obd_capa *ocapa, int reserve,&lt;br/&gt;
                                int resend)&lt;br/&gt;
{&lt;br/&gt;
        struct ptlrpc_request   *req;&lt;br/&gt;
        struct ptlrpc_bulk_desc *desc;&lt;br/&gt;
        struct ost_body         *body;&lt;br/&gt;
        struct obd_ioobj        *ioobj;&lt;br/&gt;
        struct niobuf_remote    *niobuf;&lt;br/&gt;
        int niocount, i, requested_nob, opc, rc;&lt;br/&gt;
        struct osc_brw_async_args *aa;&lt;br/&gt;
        struct req_capsule      *pill;&lt;br/&gt;
        struct brw_page *pg_prev;&lt;/p&gt;

&lt;p&gt;        ENTRY;&lt;br/&gt;
        ...&lt;br/&gt;
}&lt;/p&gt;</comment>
                            <comment id="31859" author="hongchao.zhang" created="Thu, 22 Mar 2012 09:54:13 +0000"  >&lt;p&gt;the patch to move some data in OSC to lu_env is under creation&amp;amp;test, and will attach it ASAP&lt;/p&gt;</comment>
                            <comment id="32315" author="hongchao.zhang" created="Wed, 28 Mar 2012 14:15:42 +0000"  >&lt;p&gt;status update:&lt;br/&gt;
moving variables into lu_env is of little usage to reduce stack, and a new patch with a separated patch to split the IO&lt;br/&gt;
in OSC layer(mainly call osc_check_rpcs) is under test, and it encounters several issues during testing, then it will&lt;br/&gt;
need a little more time to debug it before attaching it.&lt;/p&gt;</comment>
                            <comment id="32912" author="hongchao.zhang" created="Fri, 30 Mar 2012 09:03:18 +0000"  >&lt;p&gt;the patch is tracked at &lt;a href=&quot;http://review.whamcloud.com/#change,2418&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2418&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;by moving the variables into lu_env, the stack reduction is not obvious, the attached patch is using an separated thread&lt;br/&gt;
to call &quot;osc_check_rpcs&quot; to flush the pending IO of OSCs, and using this specific thread only if the stack usage of current&lt;br/&gt;
thread is too much (more than 3 *THREAD_SIZE / 4), then it should not affect the whole IO performance comparing to previous &lt;br/&gt;
case with many threads doing IO&lt;/p&gt;</comment>
                            <comment id="32919" author="adilger" created="Fri, 30 Mar 2012 10:32:14 +0000"  >&lt;p&gt;We already have threads that send RPCs - that is ptlrpcd.  Adding more threads in the very common IO path just to reduce stack usage will increase complexity and hurt performance due to extra context switches.  We already have to do work to improve the NUMA CPU page locality for multiple ptlrpcds, and we would need to repeat this work for this new OSC thread to keep the page handling local to the CPU on which the pages were previously handled.&lt;/p&gt;

&lt;p&gt;It looks like the main problem is that the write path is going into kernel memory allocation/reclamation in ptlrpc_request_alloc_pool(), but this thread is already in the memory reclaim path from the top-level write:&lt;/p&gt;

&lt;div class=&quot;preformatted panel&quot; style=&quot;border-width: 1px;&quot;&gt;&lt;div class=&quot;preformattedContent panelContent&quot;&gt;
&lt;pre&gt;ll_file_write
  -&amp;gt;generic_file_buffered_write
    -&amp;gt;ll_write_begin
      -&amp;gt;grab_cache_page_write_begin
        -&amp;gt;do_try_to_free_pages
         -&amp;gt;shrink_zone
          -&amp;gt;shrink_page_list
            -&amp;gt;ll_writepage
              -&amp;gt;osc_send_oap_rpc
                -&amp;gt;ptlrpc_request_alloc_pool
                  -&amp;gt;cfs_alloc
                    -&amp;gt;get_page_from_freelist
                      -&amp;gt;zone_reclaim
                        -&amp;gt;shrink_zone
&lt;/pre&gt;
&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;so adding another thread will not help very much because there will still be memory pressure, but it will slow down EVERY IO operation.  A much better approach is to figure out why the ptlrpc request pool is not being used for this write request.  It is entirely possible that the changes in 2.x for CLIO broke the initialization or usage of the ptlrpc request pool.  This was added specifically to avoid memory allocations in the write path, to avoid memory allocation under pressure.&lt;/p&gt;</comment>
                            <comment id="32946" author="hudson" created="Fri, 30 Mar 2012 13:38:50 +0000"  >&lt;p&gt;Integrated in &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;http://iu-build.whamcloud.com/images/16x16/blue.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt; &lt;a href=&quot;http://iu-build.whamcloud.com/job/lustre-reviews/./arch=x86_64,build_type=client,distro=el6,ib_stack=inkernel/4589/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lustre-reviews &#187; x86_64,client,el6,inkernel #4589&lt;/a&gt;&lt;br/&gt;
     &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1243&quot; title=&quot;Lustre 2.1.1 client stack overrun&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1243&quot;&gt;&lt;del&gt;LU-1243&lt;/del&gt;&lt;/a&gt; osc: use separated thread for IO to reduce stack (Revision 4ce80fb0405bc88a69456a3e2a33d21b6fed3977)&lt;/p&gt;

&lt;p&gt;     Result = SUCCESS&lt;br/&gt;
hongchao.zhang : &lt;a href=&quot;http://git.whamcloud.com/gitweb/?p=fs/lustre-release.git&amp;amp;a=commit&amp;amp;h=4ce80fb0405bc88a69456a3e2a33d21b6fed3977&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;4ce80fb0405bc88a69456a3e2a33d21b6fed3977&lt;/a&gt;&lt;br/&gt;
Files : &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;lustre/obdclass/lprocfs_status.c&lt;/li&gt;
	&lt;li&gt;lustre/osc/osc_request.c&lt;/li&gt;
	&lt;li&gt;lustre/lov/lov_obd.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd.h&lt;/li&gt;
	&lt;li&gt;lustre/include/obd_class.h&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="32947" author="hudson" created="Fri, 30 Mar 2012 13:39:52 +0000"  >&lt;p&gt;Integrated in &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;http://iu-build.whamcloud.com/images/16x16/blue.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt; &lt;a href=&quot;http://iu-build.whamcloud.com/job/lustre-reviews/./arch=i686,build_type=client,distro=el6,ib_stack=inkernel/4589/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lustre-reviews &#187; i686,client,el6,inkernel #4589&lt;/a&gt;&lt;br/&gt;
     &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1243&quot; title=&quot;Lustre 2.1.1 client stack overrun&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1243&quot;&gt;&lt;del&gt;LU-1243&lt;/del&gt;&lt;/a&gt; osc: use separated thread for IO to reduce stack (Revision 4ce80fb0405bc88a69456a3e2a33d21b6fed3977)&lt;/p&gt;

&lt;p&gt;     Result = SUCCESS&lt;br/&gt;
hongchao.zhang : &lt;a href=&quot;http://git.whamcloud.com/gitweb/?p=fs/lustre-release.git&amp;amp;a=commit&amp;amp;h=4ce80fb0405bc88a69456a3e2a33d21b6fed3977&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;4ce80fb0405bc88a69456a3e2a33d21b6fed3977&lt;/a&gt;&lt;br/&gt;
Files : &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;lustre/lov/lov_obd.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd.h&lt;/li&gt;
	&lt;li&gt;lustre/osc/osc_request.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd_class.h&lt;/li&gt;
	&lt;li&gt;lustre/obdclass/lprocfs_status.c&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="32948" author="hudson" created="Fri, 30 Mar 2012 13:41:02 +0000"  >&lt;p&gt;Integrated in &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;http://iu-build.whamcloud.com/images/16x16/blue.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt; &lt;a href=&quot;http://iu-build.whamcloud.com/job/lustre-reviews/./arch=x86_64,build_type=client,distro=el5,ib_stack=inkernel/4589/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lustre-reviews &#187; x86_64,client,el5,inkernel #4589&lt;/a&gt;&lt;br/&gt;
     &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1243&quot; title=&quot;Lustre 2.1.1 client stack overrun&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1243&quot;&gt;&lt;del&gt;LU-1243&lt;/del&gt;&lt;/a&gt; osc: use separated thread for IO to reduce stack (Revision 4ce80fb0405bc88a69456a3e2a33d21b6fed3977)&lt;/p&gt;

&lt;p&gt;     Result = SUCCESS&lt;br/&gt;
hongchao.zhang : &lt;a href=&quot;http://git.whamcloud.com/gitweb/?p=fs/lustre-release.git&amp;amp;a=commit&amp;amp;h=4ce80fb0405bc88a69456a3e2a33d21b6fed3977&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;4ce80fb0405bc88a69456a3e2a33d21b6fed3977&lt;/a&gt;&lt;br/&gt;
Files : &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;lustre/osc/osc_request.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd_class.h&lt;/li&gt;
	&lt;li&gt;lustre/obdclass/lprocfs_status.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd.h&lt;/li&gt;
	&lt;li&gt;lustre/lov/lov_obd.c&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="32949" author="hudson" created="Fri, 30 Mar 2012 13:43:52 +0000"  >&lt;p&gt;Integrated in &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;http://iu-build.whamcloud.com/images/16x16/blue.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt; &lt;a href=&quot;http://iu-build.whamcloud.com/job/lustre-reviews/./arch=i686,build_type=server,distro=el5,ib_stack=inkernel/4589/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lustre-reviews &#187; i686,server,el5,inkernel #4589&lt;/a&gt;&lt;br/&gt;
     &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1243&quot; title=&quot;Lustre 2.1.1 client stack overrun&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1243&quot;&gt;&lt;del&gt;LU-1243&lt;/del&gt;&lt;/a&gt; osc: use separated thread for IO to reduce stack (Revision 4ce80fb0405bc88a69456a3e2a33d21b6fed3977)&lt;/p&gt;

&lt;p&gt;     Result = SUCCESS&lt;br/&gt;
hongchao.zhang : &lt;a href=&quot;http://git.whamcloud.com/gitweb/?p=fs/lustre-release.git&amp;amp;a=commit&amp;amp;h=4ce80fb0405bc88a69456a3e2a33d21b6fed3977&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;4ce80fb0405bc88a69456a3e2a33d21b6fed3977&lt;/a&gt;&lt;br/&gt;
Files : &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;lustre/obdclass/lprocfs_status.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd_class.h&lt;/li&gt;
	&lt;li&gt;lustre/lov/lov_obd.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd.h&lt;/li&gt;
	&lt;li&gt;lustre/osc/osc_request.c&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="32950" author="hudson" created="Fri, 30 Mar 2012 13:48:42 +0000"  >&lt;p&gt;Integrated in &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;http://iu-build.whamcloud.com/images/16x16/blue.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt; &lt;a href=&quot;http://iu-build.whamcloud.com/job/lustre-reviews/./arch=x86_64,build_type=server,distro=el6,ib_stack=inkernel/4589/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lustre-reviews &#187; x86_64,server,el6,inkernel #4589&lt;/a&gt;&lt;br/&gt;
     &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1243&quot; title=&quot;Lustre 2.1.1 client stack overrun&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1243&quot;&gt;&lt;del&gt;LU-1243&lt;/del&gt;&lt;/a&gt; osc: use separated thread for IO to reduce stack (Revision 4ce80fb0405bc88a69456a3e2a33d21b6fed3977)&lt;/p&gt;

&lt;p&gt;     Result = SUCCESS&lt;br/&gt;
hongchao.zhang : &lt;a href=&quot;http://git.whamcloud.com/gitweb/?p=fs/lustre-release.git&amp;amp;a=commit&amp;amp;h=4ce80fb0405bc88a69456a3e2a33d21b6fed3977&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;4ce80fb0405bc88a69456a3e2a33d21b6fed3977&lt;/a&gt;&lt;br/&gt;
Files : &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;lustre/obdclass/lprocfs_status.c&lt;/li&gt;
	&lt;li&gt;lustre/osc/osc_request.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd.h&lt;/li&gt;
	&lt;li&gt;lustre/lov/lov_obd.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd_class.h&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="32951" author="hudson" created="Fri, 30 Mar 2012 13:50:45 +0000"  >&lt;p&gt;Integrated in &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;http://iu-build.whamcloud.com/images/16x16/blue.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt; &lt;a href=&quot;http://iu-build.whamcloud.com/job/lustre-reviews/./arch=i686,build_type=server,distro=el6,ib_stack=inkernel/4589/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lustre-reviews &#187; i686,server,el6,inkernel #4589&lt;/a&gt;&lt;br/&gt;
     &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1243&quot; title=&quot;Lustre 2.1.1 client stack overrun&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1243&quot;&gt;&lt;del&gt;LU-1243&lt;/del&gt;&lt;/a&gt; osc: use separated thread for IO to reduce stack (Revision 4ce80fb0405bc88a69456a3e2a33d21b6fed3977)&lt;/p&gt;

&lt;p&gt;     Result = SUCCESS&lt;br/&gt;
hongchao.zhang : &lt;a href=&quot;http://git.whamcloud.com/gitweb/?p=fs/lustre-release.git&amp;amp;a=commit&amp;amp;h=4ce80fb0405bc88a69456a3e2a33d21b6fed3977&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;4ce80fb0405bc88a69456a3e2a33d21b6fed3977&lt;/a&gt;&lt;br/&gt;
Files : &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;lustre/osc/osc_request.c&lt;/li&gt;
	&lt;li&gt;lustre/lov/lov_obd.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd_class.h&lt;/li&gt;
	&lt;li&gt;lustre/include/obd.h&lt;/li&gt;
	&lt;li&gt;lustre/obdclass/lprocfs_status.c&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="32952" author="hudson" created="Fri, 30 Mar 2012 13:51:53 +0000"  >&lt;p&gt;Integrated in &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;http://iu-build.whamcloud.com/images/16x16/blue.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt; &lt;a href=&quot;http://iu-build.whamcloud.com/job/lustre-reviews/./arch=x86_64,build_type=server,distro=el5,ib_stack=inkernel/4589/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lustre-reviews &#187; x86_64,server,el5,inkernel #4589&lt;/a&gt;&lt;br/&gt;
     &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1243&quot; title=&quot;Lustre 2.1.1 client stack overrun&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1243&quot;&gt;&lt;del&gt;LU-1243&lt;/del&gt;&lt;/a&gt; osc: use separated thread for IO to reduce stack (Revision 4ce80fb0405bc88a69456a3e2a33d21b6fed3977)&lt;/p&gt;

&lt;p&gt;     Result = SUCCESS&lt;br/&gt;
hongchao.zhang : &lt;a href=&quot;http://git.whamcloud.com/gitweb/?p=fs/lustre-release.git&amp;amp;a=commit&amp;amp;h=4ce80fb0405bc88a69456a3e2a33d21b6fed3977&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;4ce80fb0405bc88a69456a3e2a33d21b6fed3977&lt;/a&gt;&lt;br/&gt;
Files : &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;lustre/osc/osc_request.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd_class.h&lt;/li&gt;
	&lt;li&gt;lustre/obdclass/lprocfs_status.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd.h&lt;/li&gt;
	&lt;li&gt;lustre/lov/lov_obd.c&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="32953" author="hudson" created="Fri, 30 Mar 2012 13:53:20 +0000"  >&lt;p&gt;Integrated in &lt;span class=&quot;image-wrap&quot; style=&quot;&quot;&gt;&lt;img src=&quot;http://iu-build.whamcloud.com/images/16x16/blue.png&quot; style=&quot;border: 0px solid black&quot; /&gt;&lt;/span&gt; &lt;a href=&quot;http://iu-build.whamcloud.com/job/lustre-reviews/./arch=i686,build_type=client,distro=el5,ib_stack=inkernel/4589/&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;lustre-reviews &#187; i686,client,el5,inkernel #4589&lt;/a&gt;&lt;br/&gt;
     &lt;a href=&quot;https://jira.whamcloud.com/browse/LU-1243&quot; title=&quot;Lustre 2.1.1 client stack overrun&quot; class=&quot;issue-link&quot; data-issue-key=&quot;LU-1243&quot;&gt;&lt;del&gt;LU-1243&lt;/del&gt;&lt;/a&gt; osc: use separated thread for IO to reduce stack (Revision 4ce80fb0405bc88a69456a3e2a33d21b6fed3977)&lt;/p&gt;

&lt;p&gt;     Result = SUCCESS&lt;br/&gt;
hongchao.zhang : &lt;a href=&quot;http://git.whamcloud.com/gitweb/?p=fs/lustre-release.git&amp;amp;a=commit&amp;amp;h=4ce80fb0405bc88a69456a3e2a33d21b6fed3977&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;4ce80fb0405bc88a69456a3e2a33d21b6fed3977&lt;/a&gt;&lt;br/&gt;
Files : &lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;lustre/osc/osc_request.c&lt;/li&gt;
	&lt;li&gt;lustre/lov/lov_obd.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd_class.h&lt;/li&gt;
	&lt;li&gt;lustre/obdclass/lprocfs_status.c&lt;/li&gt;
	&lt;li&gt;lustre/include/obd.h&lt;/li&gt;
&lt;/ul&gt;
</comment>
                            <comment id="33065" author="hongchao.zhang" created="Sat, 31 Mar 2012 07:51:40 +0000"  >&lt;p&gt;1, the stack used by osc_check_rpcs0/osc_send_oap_rpc/osc_build_req/osc_brw_prep_request is ~350bytes&lt;br/&gt;
(only account local variables, not include arguments).&lt;/p&gt;

&lt;p&gt;2, the ptlrpc_request is called by osc_check_rpcs, which can&apos;t guarantee it must to be write request, and for read request,&lt;br/&gt;
it will don&apos;t use the pool&lt;/p&gt;

&lt;p&gt; cfs_alloc+0x63/0x90 &lt;span class=&quot;error&quot;&gt;&amp;#91;libcfs&amp;#93;&lt;/span&gt;&lt;br/&gt;
 ptlrpc_request_alloc_internal+0x167/0x360 &lt;span class=&quot;error&quot;&gt;&amp;#91;ptlrpc&amp;#93;&lt;/span&gt;&lt;br/&gt;
 ptlrpc_request_alloc_pool+0xe/0x10 &lt;span class=&quot;error&quot;&gt;&amp;#91;ptlrpc&amp;#93;&lt;/span&gt;&lt;br/&gt;
 osc_brw_prep_request+0x1ab/0xcc0 &lt;span class=&quot;error&quot;&gt;&amp;#91;osc&amp;#93;&lt;/span&gt;&lt;br/&gt;
 ? osc_req_attr_set+0xfb/0x250 &lt;span class=&quot;error&quot;&gt;&amp;#91;osc&amp;#93;&lt;/span&gt;&lt;br/&gt;
 ? ccc_req_attr_set+0x78/0x150 &lt;span class=&quot;error&quot;&gt;&amp;#91;lustre&amp;#93;&lt;/span&gt;&lt;br/&gt;
 ? cl_req_attr_set+0xd1/0x1a0 &lt;span class=&quot;error&quot;&gt;&amp;#91;obdclass&amp;#93;&lt;/span&gt;&lt;br/&gt;
 ? cl_req_prep+0x8c/0x130 &lt;span class=&quot;error&quot;&gt;&amp;#91;obdclass&amp;#93;&lt;/span&gt;&lt;br/&gt;
 osc_send_oap_rpc+0xebd/0x1690 &lt;span class=&quot;error&quot;&gt;&amp;#91;osc&amp;#93;&lt;/span&gt;&lt;br/&gt;
 ? loi_list_maint+0xa6/0x130 &lt;span class=&quot;error&quot;&gt;&amp;#91;osc&amp;#93;&lt;/span&gt;&lt;br/&gt;
 osc_check_rpcs+0x2ae/0x3b0 &lt;span class=&quot;error&quot;&gt;&amp;#91;osc&amp;#93;&lt;/span&gt;&lt;br/&gt;
 osc_io_submit+0x1df/0x4a0 &lt;span class=&quot;error&quot;&gt;&amp;#91;osc&amp;#93;&lt;/span&gt;&lt;br/&gt;
 cl_io_submit_rw+0x78/0x130 &lt;span class=&quot;error&quot;&gt;&amp;#91;obdclass&amp;#93;&lt;/span&gt;&lt;br/&gt;
 lov_io_submit+0x2bf/0x9d0 &lt;span class=&quot;error&quot;&gt;&amp;#91;lov&amp;#93;&lt;/span&gt;&lt;br/&gt;
 cl_io_submit_rw+0x78/0x130 &lt;span class=&quot;error&quot;&gt;&amp;#91;obdclass&amp;#93;&lt;/span&gt;&lt;br/&gt;
 ll_writepage+0x205/0x3b0 &lt;span class=&quot;error&quot;&gt;&amp;#91;lustre&amp;#93;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;static int osc_brw_prep_request(int cmd, struct client_obd *cli,struct obdo *oa, ...&lt;br/&gt;
{&lt;br/&gt;
        ...&lt;br/&gt;
        if ((cmd &amp;amp; OBD_BRW_WRITE) != 0) &lt;/p&gt;
{
                opc = OST_WRITE;
                req = ptlrpc_request_alloc_pool(cli-&amp;gt;cl_import,
                                                cli-&amp;gt;cl_import-&amp;gt;imp_rq_pool,
                                                &amp;amp;RQF_OST_BRW_WRITE);
        }
&lt;p&gt; else &lt;/p&gt;
{
                opc = OST_READ;
                req = ptlrpc_request_alloc(cli-&amp;gt;cl_import, &amp;amp;RQF_OST_BRW_READ);
        }
&lt;p&gt;        ...&lt;br/&gt;
}&lt;/p&gt;

&lt;p&gt;struct ptlrpc_request *ptlrpc_request_alloc(struct obd_import *imp,&lt;br/&gt;
                                            const struct req_format *format)&lt;br/&gt;
{       &lt;br/&gt;
        return ptlrpc_request_alloc_internal(imp, NULL, format);&lt;br/&gt;
}&lt;/p&gt;

&lt;p&gt;3, the ptlrpcd is for async io, the new introduced thread will block the calling thread until it finish, which is better?&lt;/p&gt;

&lt;p&gt;4, the separated thread will only be used if the calling thread is under low stack space, and will it also affect IO much?&lt;/p&gt;</comment>
                            <comment id="33362" author="adilger" created="Tue, 3 Apr 2012 12:26:55 +0000"  >&lt;p&gt;Even in the case of read operations at the top level, if the free memory is low and the VM is trying to flush dirty data from cache, it will be a write operation at the bottom of the stack that will use the RPC request pool.&lt;/p&gt;

&lt;p&gt;Getting the RPC request pool working will not only (hopefully) fix this stack usage issue, but also has the benefit of avoiding memory allocation deadlocks when the client and server are running on the same machine, and avoids making large RPC request allocations frequenty (which is why it was added originally).  So there is a benefit in getting this code working properly for several reasons, not just the stack usage.  Also, it is best to avoid making the code more complex (i.e. adding another thread) if this is not necessary.&lt;/p&gt;</comment>
                            <comment id="34846" author="jay" created="Mon, 16 Apr 2012 19:32:31 +0000"  >&lt;p&gt;I&apos;d like to suggest to issue BRW RPC asynchronously so that we can reduce stack usage dramatically.&lt;/p&gt;

&lt;p&gt;I have added the functionality to issue async RPC at commit 2064c2a7e616b172f72462884b23d899bfc040ff so I think we can port it to b2_1 and fire writeback request in osc_io_submit() too.&lt;/p&gt;

&lt;p&gt;To best honest, obd interfaces are almost obsoleted in client IO so any attempt to add new obd ops is not good.&lt;/p&gt;</comment>
                            <comment id="34929" author="hongchao.zhang" created="Tue, 17 Apr 2012 11:12:25 +0000"  >&lt;p&gt;the updated patch based on the above async PTLRPC is under creation&amp;amp;testing.&lt;/p&gt;</comment>
                            <comment id="35078" author="hongchao.zhang" created="Thu, 19 Apr 2012 07:24:49 +0000"  >&lt;p&gt;the updated patch is under testing and will attach it soon.&lt;/p&gt;</comment>
                            <comment id="35264" author="pjones" created="Fri, 20 Apr 2012 16:13:59 +0000"  >&lt;p&gt;&lt;a href=&quot;http://review.whamcloud.com/#change,2418&quot; class=&quot;external-link&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener&quot;&gt;http://review.whamcloud.com/#change,2418&lt;/a&gt;&lt;/p&gt;</comment>
                            <comment id="40187" author="hongchao.zhang" created="Thu, 7 Jun 2012 09:53:55 +0000"  >&lt;p&gt;after rebasing the patch, two new problems are found, one is related to IO requests advancing, the IO performance is very&lt;br/&gt;
slow during testing sanity, another is a deadlock issue during testing sanity sub-test 42e&lt;/p&gt;

&lt;p&gt;the updated test is under testing, hope to attach it tomorrow.&lt;/p&gt;</comment>
                            <comment id="43168" author="hongchao.zhang" created="Tue, 14 Aug 2012 06:21:54 +0000"  >&lt;p&gt;there are much change in OSC module recently, and the patch needed to be updated against it.&lt;/p&gt;</comment>
                            <comment id="197369" author="adilger" created="Mon, 29 May 2017 03:36:21 +0000"  >&lt;p&gt;Close old ticket.&lt;/p&gt;</comment>
                    </comments>
                    <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_10490" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>End date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Fri, 27 Jun 2014 13:33:20 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                                                                            <customfield id="customfield_10390" key="com.pyxis.greenhopper.jira:gh-lexo-rank">
                        <customfieldname>Rank</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>1|hzvyav:</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                <customfield id="customfield_10090" key="com.pyxis.greenhopper.jira:gh-global-rank">
                        <customfieldname>Rank (Obsolete)</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>9741</customfieldvalue>
                        </customfieldvalues>
                    </customfield>
                                                                                            <customfield id="customfield_10060" key="com.atlassian.jira.plugin.system.customfieldtypes:select">
                        <customfieldname>Severity</customfieldname>
                        <customfieldvalues>
                                <customfieldvalue key="10022"><![CDATA[3]]></customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                        <customfield id="customfield_10493" key="com.atlassian.jira.plugin.system.customfieldtypes:datepicker">
                        <customfieldname>Start date</customfieldname>
                        <customfieldvalues>
                            <customfieldvalue>Tue, 20 Mar 2012 13:33:20 +0000</customfieldvalue>

                        </customfieldvalues>
                    </customfield>
                                                                                                                                                                                                                                                                    </customfields>
    </item>
</channel>
</rss>