On Wed, Nov 11, 2009 at 06:57:20PM +0100, ????? ???????????? wrote:
> Why should this class only available for kernel threads? There are
> daemons ported from micro kernel platforms which act like a kernel
> daemon but run in user land and could benefit from such a scheduler
> class.

Because it is modeled on the SYS class, which is also not available to
user threads.  Supporting user threads involves a bunch of additional
work which isn't relevant to the problem at hand.

Cheers,
- jonathan

> On Wed, Nov 11, 2009 at 1:00 AM, Darren J Moffat
> <darrenm at sac.sfbay.sun.com> wrote:
> > I'm submitting this as closed approved automatic, it has already been
> > reviewed by core ZFS and kernel scheduling teams.   Given the taxonomy
> > of the new interfaces I believe this is sufficient review and closed
> > approved automatic is sufficient.  If any member disagrees then I'll
> > set a fast-track timer.
> >
> > Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
> > This information is Copyright 2009 Sun Microsystems
> > 1. Introduction
> >    1.1. Project/Component Working Name:
> >         System Duty Cycle Scheduling Class and ZFS IO Observability
> >    1.2. Name of Document Author/Supplier:
> >         Author:  Jonathan Adams
> >    1.3  Date of This Document:
> >        10 November, 2009
> > 4. Technical Description
> >
> > This case covers two user-visible changes associated with the bug:
> >
> > 6806882 need a less brutal I/O scheduler
> >
> > The changes are:
> >
> >        1. A new kernel-thread-only scheduling class, SDC
> >           (System Duty Cycle) is introduced.  Since the
> >           list of scheduling classes is user-visible through
> >           dispadmin(1M) and priocntl(1), we feel an ARC case
> >           is appropriate.
> >
> >           The new scheduling class is only used by kernel threads,
> >           so the only manpage changes are a new SDC(7) page covering
> >           the existence of the new loadable module, and an update
> >           to the discussion of the SYS class in priocntl(2).
> >
> >           A new function "sysdc_thread_enter()", puts a kernel thread
> >           into SDC.
> >
> >        2. In order to improve the observability of ZFS IO processing,
> >           we introduce a new system process per-zpool, with a
> >           u_comm and u_psargs of zpool-<poolname> (i.e. zpool-foo).
> >           The LWPs in the process are kernel threads associated
> >           with IO processing.  Since these threads have LWPs, they
> >           get microstate accounting data.  Thus, CPU usage associated
> >           with IO processing can be observed using prstat(1M) and ps(1).
> >
> >           This process will always be in the global zone, even if
> >           the pool was imported into a local zone.
> >
> > These changes, while user-visible, are essentially implementation
> > details, and are not committed interfaces.  We've tried to make this
> > clear in the manpage changes.
> >
> >
> > Interface Table
> > ---------------
> >
> >        Interface                               Stability
> >        --------------------------------------- -----------------
> >        SDC module and scheduling class         Consolidation Private
> >        sysdc_thread_enter()                    Consolidation Private
> >        zpool-<poolname> process                Volatile
> >
> > We seek Micro/Patch binding for these interfaces.
> >
> > See Also
> > --------
> >
> > 6806882 need a less brutal I/O scheduler
> >
> >
> > Man Page Diffs
> > --------------
> >
> > SDC(7)
> > +Device and Network Interfaces                                  SDC(7)
> > +
> > +
> > +NAME
> > +     SDC - System Duty Cycle scheduling class
> > +
> > +DESCRIPTION
> > +     The System Duty Cycle (SDC) scheduling class is used for some
> > +     CPU-intensive kernel thread workloads.  Like the SYS class,
> > +     it cannot be used for user processes.
> > +
> > +ATTRIBUTES
> > +     See attributes(5) for descriptions of the  following  attri-
> > +     butes:
> > +     ____________________________________________________________
> > +    |       ATTRIBUTE TYPE        |       ATTRIBUTE VALUE       |
> > +    |_____________________________|_____________________________|
> > +
> > +SEE ALSO
> > +     attributes(5)
> > +
> >
> > priocntl(2)
> > ...
> >     that  class  and/or  when  setting class-specific scheduling
> >     parameters.
> >
> >     Two special scheduling classes, SYS and SDC, exist for the purpose of   
> >   |
> >     scheduling the execution of certain special system processes
> >     (such as the swapper process). It is not possible to change
> >     the class of any LWP to SYS or SDC. In addition, any processes in       
> >   |
> >     the SYS or SDC classes that are included in a specified set of          
> >   |
> >     processes are disregarded by priocntl(). For example, an
> >     idtype of P_UID and an id value of 0 would specify all
> >     processes with a user ID of 0 except processes in the SYS and           
> >   |
> >     SDC classes and (if changing the parameters using PC_SETPARMS or        
> >   |
> >     PC_SETXPARMS) the init(1M) process.
> > ...
> >
> > zpool(1M)
> > --- zpool.1m.dist       Tue Nov  3 14:00:53 2009
> > +++ zpool.1m    Tue Nov  3 14:49:47 2009
> > @@ -947,6 +947,15 @@
> >                       version number, and only up  to  the  most
> >                       recent version supported by this software.
> >
> > +PROCESSES
> > +     Each imported pool has an associated process, named
> > +     zpool-poolname.  The threads in this process are the
> > +     pool's IO processing threads, which handle the compression,
> > +     checksumming, and other tasks for all IO associated with the
> > +     pool.  This process exists to provides visibility into the CPU
> > +     utilization of the system's storage pools.  The existence
> > +     of this process is an unstable interface.
> > +
> >  EXAMPLES
> >      Example 1 Creating        a RAID-Z Storage Pool
> >
> >
> > 6. Resources and Schedule
> >    6.4. Steering Committee requested information
> >        6.4.1. Consolidation C-team Name:
> >                On
> >    6.5. ARC review type: Automatic
> >    6.6. ARC Exposure: open
> >
> > _______________________________________________
> > opensolaris-arc mailing list
> > opensolaris-arc at opensolaris.org
> >
> 
> 
> 
> -- 
>       ,   _                                    _   ,
>      { \/`o;====-    Olga Kryzhanovska   -====;o`\/ }
> .----'-/`-/     olga.kryzhanovska at gmail.com   \-`\-'----.
>  `'-..-| /     Solaris/BSD//C/C++ programmer   \ |-..-'`
>       /\/\                                     /\/\
>       `--`                                      `--`

Reply via email to