From: Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: Hidehiro Kawai <hidehiro.kawai.ez@hitachi.com>,
Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>,
yrl.pp-manager.tt@hitachi.com, linux-kernel@vger.kernel.org
Subject: Re: Re: [PATCH V4 1/5] trace-cmd/listen: Apply the trace-msg protocol for communication between a server and clients
Date: Wed, 23 Jul 2014 15:14:32 +0900 [thread overview]
Message-ID: <53CF52C8.2020601@hitachi.com> (raw)
In-Reply-To: <20140722110444.2e78ad0b@gandalf.local.home>
Hi Steven,
Thank you for your review.
(2014/07/23 0:04), Steven Rostedt wrote:
> Sorry for taking so long to reply, I've been hacking on the kernel a
> bit and that takes precedence over user tools :-/
>
>
> On Fri, 11 Jul 2014 00:58:26 +0000
> Yoshihiro YUNOMAE <yoshihiro.yunomae.ez@hitachi.com> wrote:
>
>> Apply trace-msg protocol for communication between a server and clients.
>>
>> Currently, trace-listen(server) and trace-record -N(client) operate as follows:
>>
>> <server> <client>
>> listen to socket fd
>> connect to socket fd
>> accept the client
>> send "tracecmd"
>> +------------> receive "tracecmd"
>> check "tracecmd"
>> send cpus
>> receive cpus <------------+
>> print "cpus=XXX"
>> send pagesize
>> |
>> receive pagesize <--------+
>> print "pagesize=XXX"
>> send option
>> |
>> receive option <----------+
>> understand option
>> send port_array
>> +------------> receive port_array
>> understand port_array
>> send meta data
>> receive meta data <-------+
>> record meta data
>> (snip)
>> read block
>> --- start sending trace data on child processes ---
>>
>> --- When client finishes sending trace data ---
>> close(socket fd)
>> read size = 0
>> close(socket fd)
>>
>> All messages are unstructured character strings, so server(client) using the
>> protocol must parse the unstructured messages. Since it is hard to
>> add complex contents in the protocol, structured binary message trace-msg
>> is introduced as the communication protocol.
>>
>> By applying this patch, server and client operate as follows:
>>
>> <server> <client>
>> listen to socket fd
>> connect to socket fd
>> accept the client
>> send "tracecmd"
>> +------------> receive "tracecmd"
>> check "tracecmd"
>> send "V2\0<MAGIC_NUMBER>\00" as the v2 protocol
>
> Lets change this to "-1V2\0<MAGIC_NUMBER>\00"
>
> The -1 will cause an old server to exit as it will not accept a -1 for
> CPU count. Then you can check if the return of the next read is -1, as
> the client would have disconnected.
Sure.
> The reason I ask this, is because once you send a valid CPU count (and
> unfortunately, 0 happens to be valid :-p, the server side creates a
> file. When you close it, that file stays around as zero length.
>
> By sending -1, the old server will error out and never create a file.
Yes, I also thought this should be fixed.
I'll submit fixed patch.
Thank you,
Yoshihiro YUNOMAE
--
Yoshihiro YUNOMAE
Software Platform Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: yoshihiro.yunomae.ez@hitachi.com
next prev parent reply other threads:[~2014-07-23 6:14 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-11 0:58 [PATCHV4 0/5] trace-cmd: Support the feature which guests send trace data via virtio Yoshihiro YUNOMAE
2014-07-11 0:58 ` [PATCH V4 1/5] trace-cmd/listen: Apply the trace-msg protocol for communication between a server and clients Yoshihiro YUNOMAE
2014-07-22 15:04 ` Steven Rostedt
2014-07-23 6:14 ` Yoshihiro YUNOMAE [this message]
2014-07-11 0:58 ` [PATCH V4 2/5] trace-cmd/msg: Use poll(2) to wait for a message Yoshihiro YUNOMAE
2014-07-11 0:58 ` [PATCH V4 3/5] trace-cmd/virt-server: Add virt-server mode for a virtualization environment Yoshihiro YUNOMAE
2014-07-11 0:58 ` [PATCH V4 4/5] trace-cmd/virt-server: Add --dom option which makes a domain directory to virt-server Yoshihiro YUNOMAE
2014-07-11 0:58 ` [PATCH V4 5/5] trace-cmd/record: Add --virt option for record mode Yoshihiro YUNOMAE
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53CF52C8.2020601@hitachi.com \
--to=yoshihiro.yunomae.ez@hitachi.com \
--cc=hidehiro.kawai.ez@hitachi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.com \
--cc=rostedt@goodmis.org \
--cc=yrl.pp-manager.tt@hitachi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.