From: David Xu <davidxu06@gmail.com>
To: xen-devel@lists.xen.org
Subject: xen_evtchn_do_upcall
Date: Sun, 21 Oct 2012 21:51:34 -0400 [thread overview]
Message-ID: <CAGjowiSRbZHcvtx52EJdGBBAw4t4eBSTHsdLtBe7u9Frtve9fA@mail.gmail.com> (raw)
[-- Attachment #1.1: Type: text/plain, Size: 3463 bytes --]
Hi,
Is anybody know the purpose of this method (xen_evtchn_do_upcall)? When I
run a user level application involved in TCP receiving and the SoftIRQ for
eth0 on the same CPU core, everything is OK. But if I run them on 2
different cores, there will be xen_evtchn_do_upcall() existing (maybe when
the local_bh_disable<http://www.cs.fsu.edu/~baker/devices/lxr/http/ident?i=local_bh_disable>()
or local_bh_enable<http://www.cs.fsu.edu/~baker/devices/lxr/http/ident?i=local_bh_disable>()
is called) in __inet_lookup_established() routine which costs longer time
than the first scenario. Is it due to the synchronization issue between
process context and softirq context? Thanks for any reply.
1) | __inet_lookup_established() {
1) | xen_evtchn_do_upcall() {
1) 0.054 us | exit_idle();
1) | irq_enter() {
1) | rcu_irq_enter() {
1) 0.102 us | rcu_exit_nohz();
1) 0.431 us | }
1) 0.064 us | idle_cpu();
1) 1.152 us | }
1) | __xen_evtchn_do_upcall() {
1) 0.119 us | irq_to_desc();
1) | handle_edge_irq() {
1) 0.107 us | _raw_spin_lock();
1) | ack_dynirq() {
1) | evtchn_from_irq() {
1) | info_for_irq() {
1) | irq_get_irq_data() {
1) 0.052 us | irq_to_desc();
1) 0.418 us | }
1) 0.782 us | }
1) 1.135 us | }
1) 0.049 us | irq_move_irq();
1) 1.800 us | }
1) | handle_irq_event() {
1) 0.161 us | _raw_spin_unlock();
1) | handle_irq_event_percpu() {
1) | xennet_interrupt() {
1) 0.125 us | _raw_spin_lock_irqsave();
1) | xennet_tx_buf_gc() {
1) 0.079 us | gnttab_query_foreign_access();
1) 0.050 us | gnttab_end_foreign_access_ref();
1) 0.069 us | gnttab_release_grant_reference();
1) | dev_kfree_skb_irq() {
1) 0.055 us | raise_softirq_irqoff();
1) 0.472 us | }
1) 0.049 us | gnttab_query_foreign_access();
1) 0.058 us | gnttab_end_foreign_access_ref();
1) 0.058 us | gnttab_release_grant_reference();
1) | dev_kfree_skb_irq() {
1) 0.050 us | raise_softirq_irqoff();
1) 0.456 us | }
1) 3.714 us | }
1) 0.102 us | _raw_spin_unlock_irqrestore();
1) 4.857 us | }
1) 0.061 us | note_interrupt();
1) 5.571 us | }
1) 0.054 us | _raw_spin_lock();
1) 6.707 us | }
1) 0.083 us | _raw_spin_unlock();
1) + 10.083 us | }
1) + 10.985 us | }
1) | irq_exit() {
1) | rcu_irq_exit() {
1) 0.087 us | rcu_enter_nohz();
1) 0.429 us | }
1) 0.049 us | idle_cpu();
1) 1.088 us | }
1) + 14.551 us | }
1) 0.191 us | } /* __inet_lookup_established */
[-- Attachment #1.2: Type: text/html, Size: 4585 bytes --]
[-- Attachment #2: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next reply other threads:[~2012-10-22 1:51 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-22 1:51 David Xu [this message]
2012-10-24 9:23 ` xen_evtchn_do_upcall Ian Campbell
2012-10-24 13:39 ` xen_evtchn_do_upcall David Xu
2012-10-24 13:54 ` xen_evtchn_do_upcall Ian Campbell
2012-10-24 14:23 ` xen_evtchn_do_upcall David Xu
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=CAGjowiSRbZHcvtx52EJdGBBAw4t4eBSTHsdLtBe7u9Frtve9fA@mail.gmail.com \
--to=davidxu06@gmail.com \
--cc=xen-devel@lists.xen.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;
as well as URLs for NNTP newsgroup(s).