On Wed, 3 Jun 2009, Marcel Moolenaar wrote: >> Is there a reason not just to use __aligned(64) or the like on the first >> entry of the MD PCPU structure for sun4v to avoid future MI pcpu changes >> from causing similar discomfort for the MD pcpu parts? Also, do we know >> why these alignment/sizing requirements exist for struct pcpu on sun4v but >> not other platforms? If this is about packing pcpu structures into >> properly aligned cache lines, again __aligned() might be the right approach >> to take... > > Adding __aligned(xx) doesn't make it aligned. For example, malloc(3) only > aligns at 16-byte boundaries, so any user-space structure that has > __aligned(x>16) must manually make sure that this is actually the case by > over-allocating and then adjusting the pointer to an x>16 aligned address. > Likewise for the kernel, though it's easier in the kernel to get something > that's page-aligned... FYI, I wan't sure if that was the problem that caused the alignment code in this case. However, I agree that malloc(9)'s lack of alignment support is a problem, and one that should be pretty easy to resolve by simply putting a bit of over-allocation code in malloc(9), and adding a malloc_aligned(9) variation, or perhaps just an M_CACHEALIGN flag. Robert N M Watson Computer Laboratory University of CambridgeReceived on Wed Jun 03 2009 - 21:35:37 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:49 UTC