Details
-
Bug
-
Resolution: Fixed
-
Minor
-
Lustre 2.5.0
-
3
-
9835
Description
In ptlrpc_server_handle_request, it init the session key for each request,
rc = lu_context_init(&request->rq_session, LCT_SESSION | LCT_NOREF);
But the session on client stack share the same flag(LCT_SESSION), which will make the server allocates client stack session info for each request, if we put server and client on the same node.
"
00000100:00000040:1.0:1376984745.821299:0:4570:0:(service.c:1768:ptlrpc_server_request_get()) RPC GETting export ffff8800584a1400 : new rpc_count 1
00000100:00000001:1.0:1376984745.821300:0:4570:0:(service.c:1770:ptlrpc_server_request_get()) Process leaving (rc=18446612134365602816 : -131939343948800 : ffff88007a45a400)
00000100:00000040:1.0:1376984745.821301:0:4570:0:(lustre_net.h:3281:ptlrpc_rqphase_move()) @@@ move req "New" > "Interpret" req@ffff88007a45a400 x1443873055311032/t0(0) o36>3bbcfa2a-42a0-4600-a8c2-72e622f1a5b4@0@lo:0/0 lens 488/0 e 0 to 0 dl 1376984751 ref 1 fl New:/0/ffffffff rc 0/-1
00000020:00000010:1.0:1376984745.821304:0:4570:0:(lu_object.c:1639:keys_init()) kmalloced 'ctx->lc_value': 320 at ffff8800584c4a00.
02000000:00000010:1.0:1376984745.821305:0:4570:0:(capa.c:416:lu_capainfo_key_init()) kmalloced 'value': 128 at ffff8800585a5b40.
00000020:00000010:1.0:1376984745.821307:0:4570:0:(lu_ucred.c:53:lu_ucred_key_init()) kmalloced 'value': 72 at ffff8800585a5640.
00000020:00000010:1.0:1376984745.821308:0:4570:0:(tgt_main.c:131:tgt_ses_key_init()) kmalloced 'value': 56 at ffff880058828c80.
00000008:00000010:1.0:1376984745.821309:0:4570:0:(osc_dev.c:149:osc_session_init()) slab-alloced 'info': 424 at ffff880053edba48.
00020000:00000010:1.0:1376984745.821311:0:4570:0:(lov_dev.c:173:lov_session_key_init()) slab-alloced 'info': 400 at ffff8800584821e8.
00008000:00000010:1.0:1376984745.821312:0:4570:0:(echo_client.c:710:echo_session_key_init()) slab-alloced 'session': 8 at ffff88007cd515f8.
00000080:00000010:1.0:1376984745.821314:0:4570:0:(lcommon_cl.c:154:ccc_session_key_init()) slab-alloced 'session': 184 at ffff88007a6e5928.
00000080:00000010:1.0:1376984745.821316:0:4570:0:(vvp_dev.c:104:vvp_session_key_init()) slab-alloced 'session': 104 at ffff88007c5e2748.
00000100:00000200:1.0:1376984745.821316:0:4570:0:(service.c:1977:ptlrpc_server_handle_request()) got req 1443873055311032
"
Though this happens rarely in the real world, we still should fix it.
Attachments
Activity
Fix Version/s | New: Lustre 2.5.1 [ 10608 ] | |
Labels | Original: mn4 mq114 | New: mn4 |
Fix Version/s | New: Lustre 2.6.0 [ 10595 ] | |
Resolution | New: Fixed [ 1 ] | |
Status | Original: Open [ 1 ] | New: Resolved [ 5 ] |
Labels | New: mn4 mq114 |
Affects Version/s | New: Lustre 2.5.0 [ 10295 ] |
Description |
Original:
In ptlrpc_server_handle_request, it init the session key for each request, rc = lu_context_init(&request->rq_session, LCT_SESSION | LCT_NOREF); But the session on client stack share the same flag(LCT_SESSION), which will make the server allocates client stack session info for each request, if we put server and client on the same node. " 00000100:00000040:1.0:1376984745.821299:0:4570:0:(service.c:1768:ptlrpc_server_request_get()) RPC GETting export ffff8800584a1400 : new rpc_count 1 00000100:00000001:1.0:1376984745.821300:0:4570:0:(service.c:1770:ptlrpc_server_request_get()) Process leaving (rc=18446612134365602816 : -131939343948800 : ffff88007a45a400) 00000100:00000040:1.0:1376984745.821301:0:4570:0:(lustre_net.h:3281:ptlrpc_rqphase_move()) @@@ move req "New" -> "Interpret" req@ffff88007a45a400 x1443873055311032/t0(0) o36->3bbcfa2a-42a0-4600-a8c2-72e622f1a5b4@0@lo:0/0 lens 488/0 e 0 to 0 dl 1376984751 ref 1 fl New:/0/ffffffff rc 0/-1 00000020:00000010:1.0:1376984745.821304:0:4570:0:(lu_object.c:1639:keys_init()) kmalloced 'ctx->lc_value': 320 at ffff8800584c4a00. 02000000:00000010:1.0:1376984745.821305:0:4570:0:(capa.c:416:lu_capainfo_key_init()) kmalloced 'value': 128 at ffff8800585a5b40. 00000020:00000010:1.0:1376984745.821307:0:4570:0:(lu_ucred.c:53:lu_ucred_key_init()) kmalloced 'value': 72 at ffff8800585a5640. 00000020:00000010:1.0:1376984745.821308:0:4570:0:(tgt_main.c:131:tgt_ses_key_init()) kmalloced 'value': 56 at ffff880058828c80. 00000008:00000010:1.0:1376984745.821309:0:4570:0:(osc_dev.c:149:osc_session_init()) slab-alloced 'info': 424 at ffff880053edba48. 00020000:00000010:1.0:1376984745.821311:0:4570:0:(lov_dev.c:173:lov_session_key_init()) slab-alloced 'info': 400 at ffff8800584821e8. 00008000:00000010:1.0:1376984745.821312:0:4570:0:(echo_client.c:710:echo_session_key_init()) slab-alloced 'session': 8 at ffff88007cd515f8. 00000080:00000010:1.0:1376984745.821314:0:4570:0:(lcommon_cl.c:154:ccc_session_key_init()) slab-alloced 'session': 184 at ffff88007a6e5928. 00000080:00000010:1.0:1376984745.821316:0:4570:0:(vvp_dev.c:104:vvp_session_key_init()) slab-alloced 'session': 104 at ffff88007c5e2748. 00000100:00000200:1.0:1376984745.821316:0:4570:0:(service.c:1977:ptlrpc_server_handle_request()) got req 1443873055311032 " Though this happens rarely in the real world, but better to fix it. |
New:
In ptlrpc_server_handle_request, it init the session key for each request, rc = lu_context_init(&request->rq_session, LCT_SESSION | LCT_NOREF); But the session on client stack share the same flag(LCT_SESSION), which will make the server allocates client stack session info for each request, if we put server and client on the same node. " 00000100:00000040:1.0:1376984745.821299:0:4570:0:(service.c:1768:ptlrpc_server_request_get()) RPC GETting export ffff8800584a1400 : new rpc_count 1 00000100:00000001:1.0:1376984745.821300:0:4570:0:(service.c:1770:ptlrpc_server_request_get()) Process leaving (rc=18446612134365602816 : -131939343948800 : ffff88007a45a400) 00000100:00000040:1.0:1376984745.821301:0:4570:0:(lustre_net.h:3281:ptlrpc_rqphase_move()) @@@ move req "New" -> "Interpret" req@ffff88007a45a400 x1443873055311032/t0(0) o36->3bbcfa2a-42a0-4600-a8c2-72e622f1a5b4@0@lo:0/0 lens 488/0 e 0 to 0 dl 1376984751 ref 1 fl New:/0/ffffffff rc 0/-1 00000020:00000010:1.0:1376984745.821304:0:4570:0:(lu_object.c:1639:keys_init()) kmalloced 'ctx->lc_value': 320 at ffff8800584c4a00. 02000000:00000010:1.0:1376984745.821305:0:4570:0:(capa.c:416:lu_capainfo_key_init()) kmalloced 'value': 128 at ffff8800585a5b40. 00000020:00000010:1.0:1376984745.821307:0:4570:0:(lu_ucred.c:53:lu_ucred_key_init()) kmalloced 'value': 72 at ffff8800585a5640. 00000020:00000010:1.0:1376984745.821308:0:4570:0:(tgt_main.c:131:tgt_ses_key_init()) kmalloced 'value': 56 at ffff880058828c80. 00000008:00000010:1.0:1376984745.821309:0:4570:0:(osc_dev.c:149:osc_session_init()) slab-alloced 'info': 424 at ffff880053edba48. 00020000:00000010:1.0:1376984745.821311:0:4570:0:(lov_dev.c:173:lov_session_key_init()) slab-alloced 'info': 400 at ffff8800584821e8. 00008000:00000010:1.0:1376984745.821312:0:4570:0:(echo_client.c:710:echo_session_key_init()) slab-alloced 'session': 8 at ffff88007cd515f8. 00000080:00000010:1.0:1376984745.821314:0:4570:0:(lcommon_cl.c:154:ccc_session_key_init()) slab-alloced 'session': 184 at ffff88007a6e5928. 00000080:00000010:1.0:1376984745.821316:0:4570:0:(vvp_dev.c:104:vvp_session_key_init()) slab-alloced 'session': 104 at ffff88007c5e2748. 00000100:00000200:1.0:1376984745.821316:0:4570:0:(service.c:1977:ptlrpc_server_handle_request()) got req 1443873055311032 " Though this happens rarely in the real world, we still should fix it. |