Rusty Russell wrote: > On Fri, 2007-02-09 at 01:35 -0800, Andrew Morton wrote: > >> On Fri, 09 Feb 2007 20:20:27 +1100 Rusty Russell <rusty at rustcorp.com.au> wrote: >> >> >>> +#define log(...) \ >>> + do { \ >>> + mm_segment_t oldfs = get_fs(); \ >>> + char buf[100]; \ >>> + sprintf(buf, "lguest:" __VA_ARGS__); \ >>> + set_fs(KERNEL_DS); \ >>> + sys_write(1, buf, strlen(buf)); \ >>> + set_fs(oldfs); \ >>> + } while(0) >>> >> Due to gcc shortcomings, each instance of this will chew an additional 100 >> bytes of stack. Unless they fixed it recently. Is a bit of a timebomb. I >> guess ksaprintf() could be used. >> >> It also looks a bit, umm, innovative. >> > > It's also unused 8) > > It's an extremely useful macro for doing grossly invasive logging of the > guest. I'll drop it if you prefer. > Yes, it is a bit, umm, innovative. If it is going to be kept, even if just for devel logging, you should disable interrupts around it. Changing segments is not a normal thing to do. Zach