[OpenAFS-devel] fstrace/icl on 64-bit platforms

chas williams - CONTRACTOR chas@cmf.nrl.navy.mil
Mon, 19 Dec 2005 23:14:32 -0500


it looks like tracing only works "correctly" on sgi and aix51 meaning
that longs and pointers get passed down as 64-bit entitites, instead
of getting truncated.  AFS_64BIT_KERNEL seems to used to change icl's
behavior but very few 64-bit platforms actually define this.  of course,
fstrace needs a way to tell what kind of long is in the log and deciding
if your kernel is 32-bit or 64-bit isnt always easy.

what to do?  add a new ioctl to ask the afs module if its running in
32-bit or 64-bit, so fstrace can tell how big ICL_TYPE_LONG will be
(and hopefully both fstrace and kernel module agree on how big long
is)?  there is a 64-bit datatype already, ICL_TYPE_INT64 so perhaps
ICL_TYPE_LONG/ICL_TYPE_POINTER should be promoted to ICL_TYPE_INT64 when
AFS_64BIT_KERNEL is set?  ICL_TYPE_LONG just seems like a bad idea if
long varies in size.