Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: xen spl rework



Hi Manuel,

Thanks for taking the time.

On 6 December 2012 04:00, Manuel Bouyer <bouyer%antioche.eu.org@localhost> 
wrote:
> On Sun, Nov 25, 2012 at 02:29:50PM -0600, Cherry G. Mathew wrote:
>> I've updated the patch with your suggestions.
>> ftp://ftp.netbsd.org/pub/NetBSD/misc/cherry/tmp/port-xen/spl1.c.diff
>
> Cosmetic first:
> move extern variable and function declaration to hearders, included by
> all .c that need it. It's way too easy for things to get out of
> sync otherwise.
>

Ok, thanks.

>
> in evtchn_do_event() seems to not be used anymore (it's computed but
> never read).

Not sure I understand, it's called from hypervisor_machdep.c

> And, more important, what is setting bits in ci->ci_ipending now ?
> It seems that hypervisor_set_ipending() is never called any more ?

I think you're referring to this:

Index: arch/xen/xen/evtchn.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/xen/evtchn.c,v
retrieving revision 1.64
diff -u -r1.64 evtchn.c
--- arch/xen/xen/evtchn.c       25 Nov 2012 08:39:36 -0000      1.64
+++ arch/xen/xen/evtchn.c       25 Nov 2012 20:19:15 -0000
[...]

***************
*** 307,366 ****
                if (evtch == IRQ_DEBUG)
                    printf("ih->ih_level %d <= ilevel %d\n",
ih->ih_level, ilevel);
  #endif
-                       cli();
-                       hypervisor_set_ipending(iplmask,
-                           evtch >> LONG_SHIFT, evtch & LONG_MASK);


It removes a redundant (second) hypervisor_set_ipending() call - jym
pointed this up a bit earlier in this thread - probably should have
been broken out into a separate patch. The new codepath makes sure
that pending bits are only set on local cpus and uses ipis to set
remote pending bits.

-- 
~Cherry


Home | Main Index | Thread Index | Old Index