[Lustre-discuss] Printing the data in OST code

Jack David
Tue, 21 Feb 2012 14:43:25 -0000

Hi All,

I am trying to analyze the OSC-OST communication by putting some
prints in the code. Basically I want to print the data that is sent by
OSC and received by OST. But I am not able to print the correct, may
be because of I am not printing the correct buffers. Please correct me
in the following approach which I have taken.

On the OST side, whenever the OST_WRITE request comes, following code
path is taken

ost_brw_write()
-- target_bulk_io()
-- -- ptlrpc_start_bulk_transfer()
-- -- -- LNetGet()

In the ptlrpc_start_bulk_transfer(), the "desc" parameter contains the
pages and that is filled into the "MD". I assume if I print those
pages at this point (before calling LNetGet()), I will not get the
data.

Once the LNetGet() is called, the GET request will be served by lower
layer and lnet_finalize() will be invoked as a call back routine to
notify that the operation is complete. In "lnet_finalize()", I am
filtering the "msg" (passed in as parameter) with type LNET_MSG_GET to
pin point the correct "msg". This struct "msg" will contain
the
"lnet_libmd_t" type of MD which will have the kiov as well as
"start"
buffer. If I print that buffer, still the data is garbage.

I would appreciate any help on this issue.

Thanks,
J