On 09/12/2014 11:42 AM, Thomas Gleixner wrote: > On Fri, 12 Sep 2014, Thomas Gleixner wrote: >> On Fri, 12 Sep 2014, Dave Hansen wrote: >> The proper solution to this problem is: >> >> do_bounds() >> bd_addr = get_bd_addr_from_xsave(); >> bd_entry = bndstatus & ADDR_MASK: > > Just for clarification. You CANNOT avoid the xsave here because it's > the only way to access BNDSTATUS according to the manual. > > "The BNDCFGU and BNDSTATUS registers are accessible only with > XSAVE/XRSTOR family of instructions" > > So there is no point to cache BNDCFGU as you get it anyway when you > need to retrieve the invalid BD entry.
Agreed. It serves no purpose during a bounds fault. However, it does keep you from having to do an xsave during the bounds table free operations, like at unmap() time. That is actually a much more critical path than bounds faults. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/