看板 FB_smp 關於我們 聯絡資訊
On 28-Feb-02 Robert Watson wrote: > > I'm not opposed to the idea of instrumentation, although that's probably > simply that so far we haven't managed to shoot ourselves quite enough to > have me wish I had it. One of my concerns with instrumentation has always > been the fine-grained issue: throwing Giant back into the mix will change > a fair amount about the codepath, and that if we adopt a phased locking of > a large structure (proc, for example), then we don't have all that much > granularity, suggesting that we'll probably want to look at something that > has more complexity than the current scheme. > > One of my particular concerns has been regarding the following: suppose a > structure is covered by three or four relevant locks. We decide to > selectively instrument one of those sets of locks (perhaps because we just > added it, having determined the others are stable). do we want to be able > to say: > > s = giant_instrument(PROCLOCK_INST | PGRPLOCK_INST | ALLPROC_INST); Yes. That is why in my example I had a syscall protected by "proc,vfs" meaning that both the proc variable and the vfs variable would be checked. > Where the test can check to see if any of the particular instrumented bits > of the mask require Giant, and then DTRT? This would help somewhat with > the "collapse the instrumentation" some, assuming the simplification that > we don't do too much instrumentation below the system call where it gets > complex. Which appears to be something we should avoid doing anyway so > that Giant doesn't end up in the wrong place in the lock order. *nod* This is pretty much what I said. :) -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve!" - http://www.FreeBSD.org/ To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-smp" in the body of the message