Some newbie questions
Avi Kivity
avi@scylladb.com
Wed Aug 17 18:42:00 GMT 2016
On 08/17/2016 09:35 PM, Frank Ch. Eigler wrote:
> Hi -
>
> On Wed, Aug 17, 2016 at 09:30:38PM +0300, Avi Kivity wrote:
>> [...]
>>>> My load indeed calls epoll_wait() at a high rate, with zero timeout.
>>> [...]
>> Yes. It's not very common, but some high throughput or latency
>> sensitive applications will poll. In my case it's both high throughput
>> and latency sensitive.
> Interesting. I assume you've measured that.
Yes. It's also well known in some circles.
If you're interested, some links:
http://www.seastar-project.org/
http://www.scylladb.com/technology/architecture/
http://dpdk.org/
>
>> [...]
>>> looks for mmap/exec syscalls. Perhaps there could be a mode (a -D
>>> setting?) for selecting kprobes rather than syscall-tracepoints to
>>> catch those events.
>> Why not trace just mmap and exec syscalls, rather than everything?
>> Surely there's a static tracepoint for those.
> Heh, in this case it's "surely not". :-) There exists only a
> multiplexed system-call-entry and a system-call-exit pair of
> tracepoints.
Well, static tracepoints are a patch away, no?
Another alternative is to eliminate that spinlock, perhaps until after
you've verified it's mmap or exec. Can you now attach an ebpf program
to that tracepoint? Maybe that's unneeded since you're loading native
code into the kernel.
>
>
>> I'd say defaulting to taking a spinlock on every syscall is going to
>> cause anyone who's using more than a laptop a lot of pain.
> There may well exist optimization opportunities that would benefit
> syscall-saturated applications such as yours.
It's quite possible.
More information about the Systemtap
mailing list