On Tue, 2019-05-28 at 19:26 +0200, Kamil Rytarowski wrote: > On 28.05.2019 18:34, Michał Górny wrote: > > There is no difference in internal layout or logic between b. and c. > > In either case, we need to perform XSAVE, process it and copy the data > > into internal structure. The only difference is that in b. we handle it > > all in one request, and in c. we do three requests copying different > > parts of XSAVE to three different buffers. > > > > I see. So (b) and (c) are the same except that XSAVE is a struct of a > dynamic size with normalized registers instead of explicit AVX, AVX512 > calls. >
The only real difference is the amount of work when adding new register types. With b., you just add a new field to the struct and some code to x86 that copies data to that field. With c., you need to add the new PT_* request with all associated functions. -- Best regards, Michał Górny