<div dir="ltr"><div class="gmail_quote"><br><div dir="ltr">I think the debian microcode is for EPYC, not Ryzen.<div><br></div><div>The Redhat ibpb implementation is in the HVM path.  IBPB must be used in vmexit and other transfer points because IBRS is not sufficient in those situations.  I'm assuming that is what redhat is doing there, and that they aren't issuing it in the user->kernel mode path.  Though their documentation seems to imply that they are doing it in both paths.  But I'm pretty sure IBPB doesn't help in the user->kernel path if IBRS is enabled.  Also note that the linux code is changing daily.  Even the Intel engineers got confused on LKML.  But I will keep tabs on the conversation in case things change.</div><div><br></div><div>For AMD, AMD chipsets with microcode updates can operate with IBRS=0 IBPB=2 (IBPB=2 just means IBRS is disabled and IBPB is used instead, in linux land).   Some AMD chipsets *WITHOUT* microcode updtes can apparently already do IBRS and IBPB, but without the microcode update both have to be enabled and performance is lower.  In this situation, IBRS mode 2 is used (leave IBRS turned on) and IBPB is used as the barrier.</div><div><br></div><div>There was a lot of confusion on how IBRS was supposed to operate in the Linux community. IBPB is a barrier.  IBRS was a mode setting, but Intel clarified that IBRS is *ALSO* a barrier so when it is enabled (even in mode 2), user->kernel transitions still have to issue a wrmsr to IBRS (even though its already set to 1).  It is unclear whether this is also true for AMD's IBSR mode but I suspect it isn't since the older AMD chips still use the IBPB barrier with IBRS already enabled.</div><div><br></div><div>But remember, the linux code is changing daily.  It's a chaotic mess.  I'll keep tabs on it.</div><div><br></div><div>-Matt</div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="m_-2478700952611438892HOEnZb"><div class="m_-2478700952611438892h5"><br></div></div></blockquote></div></div>
</div></div></div><br></div>