Glenn Skinner wrote: > Date: Tue, 01 Sep 2009 14:22:45 -0700 > From: Jerry Gilliam <jerry.gilliam at sun.com> > Subject: Re: PSARC/2009/396 Tickless Kernel Architecture / lbolt > decoupling [Fasttrack timeout 09/09/2009] > > I am sponsoring the following fast-track on behalf of Rafael Vanoni, > with a time-out of 09/09/2009. The project desires > minor/major binding, plus micro/patch binding for one > interface, as specified. > > Garrett asked whether this was suitable for a fast track or whether > its scope exceeds what's appropriate for a fast track. > > To me, the _architecture_ of the case is clear, confined, and qualifies > for fast track review. (There are implied logistical issues in > getting potentially affected parties to take notice of the case, but > that's not architecture.) > > +1 from me, with one quibble (see the comment at the left margin > below). > > In the documentation updates section, we have: > > ... > Updates to condvar(9f): > ---------------------- > > Kernel Functions for Drivers condvar(9F) > > NAME > condvar, cv_init, cv_destroy, cv_wait, cv_signal, > cv_broadcast, cv_wait_sig, cv_timedwait, cv_timedwait_sig, > cv_reltimedwait, cv_reltimedwait_sig - condition variable > routines > > SYNOPSIS > #include <sys/ksynch.h> > > void cv_init(kcondvar_t *cvp, char *name, kcv_type_t type, void > *arg); > > void cv_destroy(kcondvar_t *cvp); > > void cv_wait(kcondvar_t *cvp, kmutex_t *mp); > > void cv_signal(kcondvar_t *cvp); > > void cv_broadcast(kcondvar_t *cvp); > > int cv_wait_sig(kcondvar_t *cvp, kmutex_t *mp); > > clock_t cv_timedwait(kcondvar_t *cvp, kmutex_t *mp, clock_t > timeout); > > clock_t cv_timedwait_sig(kcondvar_t *cvp, kmutex_t *mp, clock_t > timeout); > > | clock_t cv_reltimedwait(kcondvar_t *cvp, kmutex_t *mp, clock_t delta, > | time_res_t resolution); > > | clock_t cv_reltimedwait_sig(kcondvar_t *cvp, kmutex_t *mp, clock_t > delta, > | time_res_t resolution); > > INTERFACE LEVEL > Solaris DDI specific (Solaris DDI). > > PARAMETERS > cvp A pointer to an abstract data type kcondvar_t. > > mp A pointer to a mutual exclusion lock (kmutex_t), > initialized by mutex_init(9F) and held by the > caller. > > name Descriptive string. This is obsolete and should > be NULL. (Non-NULL strings are legal, but they're > a waste of kernel memory.) > > type The constant CV_DRIVER. > > arg A type-specific argument, drivers should pass arg > as NULL. > > timeout A time, in absolute ticks since boot, when > cv_timedwait() or cv_timedwait_sig() should > return. > > | delta A time, in relative ticks, when cv_reltimedwait() > | or cv_reltimedwait_sig() should return. > | > | resolution A flag that specifies how accurately the relative > | time interval should be. Possible values are > | TR_NANOSEC, TR_MICROSEC, TR_MILLISEC, TR_SEC or > | TR_CLOCK_TICK, the former indicating that the interval > | should be aligned to system clock ticks. This > | information allows the system to anticipate or > | deffer the timeout expiration in order to batch process > | similarly expiring events. Allowing the system to > | stay idle for longer periods of time and enhance > | its power efficiency. > > Please reword the second sentence of the "resolution" paragraph above > to make it clear that TR_CLOCK_TICK is the value that indicates > alignment to system clock ticks. ("Former" and "latter" are > ill-defined when there are more than two alternatives, and "former" is > usually taken to mean the first-appearing of a pair of alternatives, > at least in the American dialect of English.) > > (I did say that it was a quibble...) > > -- Glenn >
Will do. Thank you. Rafael