[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/3] mwait-idle: add enablement for AMD Naples and Rome
On 3/13/19 4:51 AM, Jan Beulich wrote: >>>> On 25.02.19 at 21:24, <Brian.Woods@xxxxxxx> wrote: >> Add the needed data structures for enabling Naples (F17h M01h). Since >> Rome (F17h M31h) has the same c-state latencies and entry methods, the >> c-state information can be used for Rome as well. For both Naples and >> Rome, mwait is used for c1 (cc1) and halt is functionally the same as >> c2 (cc6). If c2 (cc6) is disabled in BIOS, then halt functions similar >> to c1 (cc1). > > But your code does not detect this situation, and does hence not update > the table used accordingly. Why is this? Is entering C1 cheaper one way > or the other in this situation (in which case the cheaper approach should > always be used)? > > Jan > > Well, if Xen had an AML interrupter, we could use the ACPI tables like we do in Linux, but Xen doesn't (which is why we're hard coding it). mwait has the CPUID_Fn00000005_EDX MSR but since we don't have a mwait support for CC6, we can't use that. There's another register we _might_ be able to use, but support for CC6 is AND'd with that and another another register (we don't have access to). The register we'd read is also RW. So I'm not sure I trust it. The worst case (no CC6 when we think we have it), is that halt uses cc1 rather than cc6. I don't see a negative downside to this other than delay. Although, if the idle scheduler is expecting a longer delay that what it is, I don't see this as a huge issue. It still can use mwait for smaller idle periods. Although, if all c states are turned off, mwait should even be available and this code is never enabled (and the default halt is used). I agree it isn't optimal, but it's the best solution I can think of. Brian _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |