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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>