> For kernel core dumps, at the present time, no; this needs thinking, and > testing: > - kvm(3) API will have to move from using 'unsigned long' to 'paddr_t'. I > am currently checking that for all architectures except i386, > sizeof(paddr_t) == sizeof(u_long).
sparc and 32 bit sparc64 kernels use 64 bit paddr_t. there are some mips ports that do too. you can't assume the above equality at all, not since "paddr_t" was introduced a decade+ ago. > - i386 will use 64 bits paddr_t for kvm(3), so we will have to discuss on > how to make it work without too much fuzz with pre-64 bits i386 dumps. i think this seems the sanest way. make userland see the 64 bit definition in all cases, and have the libkvm code DTRT. > - sparse dumps for memory above 4GB. > > Eventually, PAE and !PAE kernels core files should be handled by kvm, if > that's what you are asking. right. i was suggesting that if you simply used nlist(3) to find out the value of "i386_use_pae" then the same code will work for live debugging as well as core dumps. since core file debugging basically requires this method, and it works just as well for live debugging, the sysctl seems like something we don't need to do. .mrg.