Source-Changes-D archive

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

Re: CVS commit: src/sys



On Mon, Feb 28, 2011 at 04:48:43PM +0000, Mindaugas Rasiukevicius wrote:
> "Jukka Ruohonen" <jruoho%netbsd.org@localhost> wrote:
> > Module Name:        src
> > Committed By:       jruoho
> > Date:               Fri Feb 25 09:16:00 UTC 2011
> > 
> > Modified Files:
> >     src/sys/arch/x86/acpi: acpi_cpu_md.c
> >     src/sys/dev/acpi: acpi_cpu.h acpi_cpu_pstate.c
> > 
> > Log Message:
> > Add preliminary support for the IA32_APERF and IA32_MPERF frequency
> > counters. These are not yet used for anything and only Intel is supported
> > at the moment.
> > 
> > ...
> 
> >From acpicpu_md_pstate_percent():
> 
> > +   x86_disable_intr();
> > +
> > +   aperf = sc->sc_pstate_aperf;
> > +   mperf = sc->sc_pstate_mperf;
> > +
> > +   xc = xc_unicast(0, acpicpu_md_pstate_percent_status, sc, NULL, ci);
> > +   xc_wait(xc);
> > +
> > +   x86_enable_intr();
> 
> Why interrupts are disabled here?  Calling xc_wait() with interrupts
> disabled is, at minimum, very expensive, and I would say it is wrong.
> Note that xc_wait(9) does not necessary spin - it can block.

You must not call these interfaces or any kind of MI synchronization
interface, spin mutexes included, with interrupts switched off at the
machine level!



Home | Main Index | Thread Index | Old Index