<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left: #800000 2px solid; } --></style>
</head>
<body>
<font face="Calibri" size="2"><span style="font-size:10pt;">
<div style="padding-right:5pt;padding-left:5pt;"><font color="blue">[AMD Official Use Only - AMD Internal Distribution Only]<br>
</font></div>
<div style="margin-top:5pt;"><font face="Times New Roman" size="3"><span style="font-size:12pt;"><br>
</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"><snipped></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> Yes, this does help clarify things a lot as to why current NUMA</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> support would be insufficient to express what you are describing.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> However, in that case I would echo sentiment others have expressed</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> already as this kind of deep sysfs parsing doesn't seem like it would</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> be in scope for EAL, it sounds more like something a</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> sysadmin/orchestration (or the application itself) would do.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> I mean, in principle I'm not opposed to having such an API, it just</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> seems like the abstraction would perhaps need to be a bit more robust</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> than directly referencing cache structure? Maybe something that</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> degenerates into NUMA nodes would be better, so that applications</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> wouldn't have to *specifically* worry about cache locality but</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >> instead have a more generic API they can use to group cores together?</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> >></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> ></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > Unfortunately can't cover all usecases by sysadmin/orchestration (as</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > graph usecase one above), and definitely too much HW detail for the</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > application, that is why we required some programmatic way (APIs) for</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > applications.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> ></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > And we are on the same page that, the more we can get away from</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > architecture details in the abstraction (APIs) better it is, overall</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > intention is to provide ways to application to find lcores works</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > efficiently with each other.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> ></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > For this what do you think about slightly different API *, like:</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > ```</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > rte_get_next_lcore_ex(uint i, u32 flag) ```</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> ></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > Based on the flag, we can grab the next eligible lcore, for this patch</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > the flag can be `RTE_LCORE_LLC`, but options are wide and different</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > architectures can have different grouping to benefit most from HW in a</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > vendor agnostic way.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > I like the idea, what do you think about this abstraction?</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> ></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> > * Kudos to Vipin <font face="Segoe UI Emoji">😉</font></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> ></span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> Hi Ferruh,</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> In principle, having flags for this sort of thing sounds like a better way to go. I</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> do like this idea as well! It of course remains to be seen how it can work in</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> practice but to me it certainly looks like a path worth exploring.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;">Sharing the new RFC shortly.</span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"> </span></font></div>
<div><font face="Calibri" size="2"><span style="font-size:11pt;"><snipped></span></font></div>
</span></font>
</body>
</html>