From: Harris, James R <james.r.harris at intel.com>
To: spdk@lists.01.org
Subject: [SPDK] Re: A few thoughts about spdk_top
Date: Tue, 07 Apr 2020 22:13:50 +0000 [thread overview]
Message-ID: <88368B06-746A-44CD-8CFC-1097A01518D3@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 2663 bytes --]
Hi Darek,
On 4/7/20, 3:30 AM, "Stojaczyk, Dariusz" <dariusz.stojaczyk(a)intel.com> wrote:
I like the idea of spdk_top application, although I'm slightly concerned about our implementation. Is it a right choice to develop it in C? It's already a huge amount of code and it already has a huge amount of limitations, not even mentioning possible bugs. I actually spent a lot of time developing in curses, GTK, GTKmm and even WinAPI and I don't do it anymore because it's difficult and not worth it. I switched to javascript as well as server-side javascript for my other projects and I find it incredibly easier to write user apps there. I'm not trying to push on javascript specifically, but could we consider writing spdk_top in a higher level language, where we don't care about memory allocation, json parsing, and printing data to the screen?
[Jim] I think there's room for multiple user interfaces. Personally, I like a terminal-based application like this - I typically run tmux with 4 panes, and having something like this in one pane while I'm running a target in the foreground in another works well for me. Maybe something in Python could end up as a bit less code? It's possible, but I look at something like spdkcli and it has quite a bit of code too.
[Jim] Regarding json parsing, I think it is nice to have another use case for our client-side JSON RPC APIs. But you're right, there's about 300 lines of code in there specific to issuing RPCs to the app. Potentially some of that long-term could be moved into a common library for other applications that have a need for issuing RPCs from a C application.
Currently spdk_top seems to require the same, detailed review as any spdk patch and honestly I'm a bit reluctant to review it. Moreover, I find one major feature missing there - a view with all pollers on a specific, single thread and busy time % for each poller, so that I can see what my thread is most busy with. I think it would be the first view I check when doing any spdk optimization. Yet I see it's quite a bit of effort to add it to the current spdk_top code, which brings me back to my first question.
[Jim] I think now's the time to provide that feedback on what might be missing. But the basic infrastructure is all in place, and knowing Maciek I'm sure he's open to suggestions! I'd encourage everyone to pull down the code and kick the proverbial tires. The end of the series can be found at https://review.spdk.io/gerrit/c/spdk/spdk/+/1717/4. I've also started reviewing individual patches and am suggesting areas where the code could be simplified a bit.
Regards,
-Jim
next reply other threads:[~2020-04-07 22:13 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-07 22:13 Harris, James R [this message]
-- strict thread matches above, loose matches on Subject: below --
2020-04-08 8:28 [SPDK] Re: A few thoughts about spdk_top Stojaczyk, Dariusz
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=88368B06-746A-44CD-8CFC-1097A01518D3@intel.com \
--to=spdk@lists.01.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox