xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* xen_evtchn_do_upcall
@ 2012-10-22  1:51 David Xu
  2012-10-24  9:23 ` xen_evtchn_do_upcall Ian Campbell
  0 siblings, 1 reply; 5+ messages in thread
From: David Xu @ 2012-10-22  1:51 UTC (permalink / raw)
  To: xen-devel


[-- 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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-10-24 14:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-22  1:51 xen_evtchn_do_upcall David Xu
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

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).