Date: Fri, 1 Oct 2010 15:00:00 +0200 From: Svatopluk Kraus <onwahe@gmail.com> To: freebsd-current@freebsd.org Subject: CACHE_LINE_SIZE too small, so struct vpglocks size alignment doesn't work Message-ID: <AANLkTinuourO3Y6vM_xc_fLZTtLKbW0EFfahgY1%2BDjS2@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
Hallo, a size of 'struct vpglocks' is padded to CACHE_LINE_SIZE size in 'sys/vm/vm_page.h' header file. I work on a 'coldfire' port where CACHE_LINE_SIZE is 16 bytes and sizeof(struct mtx) is 20 bytes thus size alignment doesn't work. I solved it somehow, but I like to learn how to solve it in spirit of FreeBSD. There are a couple of possibilities: A1. Do nothing for small CACHE_LINE_SIZE. A2. Pad to multiple of CACHE_LINE_SIZE. B1. use #if with CACHE_LINE_SIZE B2. use #if with __coldfire__ When I use B1 solution I need to known sizeof(struct mtx) value in preprocessing time. So, is it correct to use something like 'assym.s' magic (sys/i386/i386/genassym.c) in MI code? Or has someone another suggestion? Regards, Svata
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTinuourO3Y6vM_xc_fLZTtLKbW0EFfahgY1%2BDjS2>