SolarisInternals

Categories
OpenSolaris
Edition II
SI2 Index
POD Index
Japanese
Chinese
Solaris Internals 2nd Edition Index Reference

Symbols

/etc/system 25

/proc 31, 528

/proc See process file system

_ 81

Numerics

64 bit features See sixtyfour (64) bit support

A

ABS32 570

address space 482, 503

callbacks 507

introduction 27

kernel functions 503-507

management 502, 503

page faults 508

SPARC 493

x86 and x64 495

address spaces 490

advise() 515

agent LWP 128

align (kernel memory statistic) 591

alloc (kernel memory statistic) 591

alloc_fail (kernel memory statistic) 591

amp See anonymous map point

ani_free 524

anon header 521

anon slot 523, 526

anon structure 523

Anonymous 779

anonymous map pointer (amp) 521

anonymous memory 516, 520, 521

accounting 527

definition of 483

kernel functions

anon_alloc() 523, 525

anon_copy_ptr() 523

anon_create() 523

anon_decref() 523

anon_dup() 523

anon_free() 523

anon_get_next_ptr() 523

anon_get_ptr() 524

anon_getpage() 524

anon_map_getpages() 524

anon_pages() 524

anon_private() 524

anon_release() 524

anon_resvmem() 524

anon_set_ptr() 524

anon_unresv() 524

anon_zero() 524

anonmap_alloc() 524

anonmap_free() 524

Application Binary Interface (ABI) 53

arg0 760

arg1 760

argv 97

async_request_size 561

atomic instructions 889

autofs 32

availrmem 525

B

backing store 482

backing store (swap) 482

bdev_strategy() 756, 823

Bill Joy 797

bmap_read() 822

bmap_write() 822

bootstrap 568

BSD 30

bufctl_audit 614

C

cache

coloring 547, 552

hardware 551

page 482

ufs block buffer 824

cache coherent NUMA (ccNUMA) 887

cachefs 32

cache-list 546

callout entry 983

callout queue insertion 983

Callout Table ??-984

Callout Tables

observing with mdb 985

callouts

callout queue processing 984

callout_schedule() 984

cas (compare and swap) instruction 890, 893, 894

CD-ROM file system 14

checkprot() 515

Chip Multithreading

about 865

as compared to vertical threading and simulaneous multithreading 866

chunk_size 592

clock (system) 524, 987

clock interrupt functions 977

clock interrupt tick processing 230

clock jitter 977

clock tick 23, 979

clocks

callout queue insertion 983

clock and timer interactions 978

interval timer expiration 979

kernel callout table 981

kernel clock_tick() function 979

lbolt 978

system clock thread 977

close() 738

cmpxchgl instruction 894

CMT See Chip Multithreading

colored bins 552

command

pfiles 71

commands

dispadmin 218, 220

dtrace 81, 94

elfdump 54

intrstat 289

ipcs 312

kmdb 1019

kstat 83, 87, 442

kstats 180

limit 88

lockstat 903, 904, 917

mdb 67, 73, 82, 86, 92, 99, 173, 178, 270, 453, 1019

mpstat 288

newtask 447

plimit 88

pmap 58, 315

ppriv 61

prctl 89

priocntl 225

prstat 47, 249, 443, 446

ps 62, 76, 77

sar -v 86

vmstat 288

zoneadm 400

Condition variables 895

condition variables 274

functions 278

cv_wait() 282

kernel functions 279

cv_broadcast() 282

cv_signal() 282

consistent_coloring (cache placement algorithm) 553

constructor() 583

copy-on-write (COW) 489, 499, 519, 546

COW. see copy-on-write

cpu

See processors

CPU See processors

credentials 59

structure members ??-64

cross-calls 289

cyclic cache 485

cyclics

about 987

expiry processing 993

heap management 990

jitter measurement 1000

kernel interfaces 1000

kernel structure resizing 997

locking 995

removing an entry 998

users of (clients) 999

cylinder group 817

D

data 911

data mappings 491

DDI 14, 981

ddi_mapdev(9F) 515

deadlock 565

deathrow 114

debugger

module management 1030

debuggers

about kmdb and mdb 1019

breakpoint and watchpoint management 1038

kadb 1024

kmdb

structure 1027

terminal I/O 1032

kmdb design decisions 1022

mdb components 1020

mdb module management 1021

procfs and libproc 1020

PROM interface 1036

deficit 556

demand paging 14, 28, 484

desfree 559, 562, 563

destructor() 583

directory name lookup cache (dnlc). see dnlc

dirty pages 483, 516

DISM See dynamic intimate shared memory 315

dispatcher 287

context switch monitoring 273

context switching 261

dispatch (run) queues - tracking queue depth 194

dispatch tables 218

dispatcher (run) queues 188

dispatcher locks 197, 895

functions summary 167

kernel structures 182-194

cpu_t 182

cpupart_t 183

disp_queue_info 185

disp_t 185

dispq_t 185

kthread_t 186

observing 190-195

xxproc_t 186

kernel swtch() function 261

lock functions 200

monitoring queue activity 260

preemption 265-269

monitoring with dtrace 270

monitoring with mdb 270

priority level, lock level 198

processor selection 256

queue balancing 255

queue functions 253

resume function 264

select-and-ratify algorithm 264

sleep queues 276

thread lgroup placement 871

thread selection 263

thread sleep 278

thread wakeup 282

thundering herd problem 905

dispatcher (kernel scheduler)

See also scheduler 22

DNLC 785

dnlc 785

directory cache 789

functions

dnlc_lookup() 786

housekeeping thread 793

negative cache 788

operation 785

statistics 793

support functions 787

door client 339

door creation 339

door interfaces 335-336

Doors 26, 335

dtrace

aggregations

lquantize 82

file systems 759

lockstat provider 917

profile provider 75

providers

tick processingclocks

and dtrace 980

scripts 181, 194, 272

sum aggregation 75

task queue probes 1013

tracing the virtual memory system 501

variables

curthread 82

dump() 515

dup() 515

dynamic file system caching 14

dynamic intimate shared memory 315

dynamic linking 53

dynamic reconfiguration 486

dynamically linked libraries 482

E

elfexec() 101

empty_magazines 592

ENOENT 781

envp 97

Ethernet 15

exec 98, 100, 102

exec system call 93

exec() 53, 97, 504

Executable and Linking Format

about 53

and exec 101

debugging 55

ELF file sections 54

ELF header 54

ELF sections 55

examining ELF sections 54

executable data 516

executable text 516

exit() 503

F

fat file system 705

fault() 515

faulta() 515

fbread() 782

fbzero() 782

fd (file descriptor) 707

FDDI 15

FFS 797

fifofs 32

File 764, 779

file descriptors 707, 708

allocating and deallocating 710

limits 713

struct uf_entry 710

file structures 714

file system cache 485, 546

file system Framework 705

file systems 14, 17

block i/o on vnode pages 756

caches 718

buffer cache 824

cyclic cache 485

cyclic page cache 776

dnlc 785

page cache 485

segkpm 767

ufs block buffer 824

caching 14

conversion to solaris 10 794

cyclic page cache 776

directory hierarchy 804

disk-based 14

dnlc 785

doorfs 337

features 17

framework overview 705

history 718

in solaris 32

in zones 419

interaction between segmap and segkpm 773

interfaces

files 714

modules 717, 721

mount 722, 733

page cache 754

unmount 734

vfs 725

vnode 741

vnode macros.see vnode macros.

vnodes 738

introduction 30

log-structured 840

lookup() 781

mdb reference 796

memory allocation policies 775

memory mapped i/o 764

open code path 709

overview 17, 30, 716

path name management 780

root vnode 735

statistics

segmap 772

the vnode 738

tools

fstyp 819

pfiles 716

types 17, 30

nfs 705

pcfs 705

ufs 797

vfs methods 725

vnode life cycle 752

walking vfs with MDB 736

walking vnodes with MDB 757

file sysystems

segkpm 767

files 705

filestat 819

floating point exceptions 26

FLTWATCH 528

fork 93, 503

fork system call 92-??

forklwp 114

free memory 520

free() 515

free-list 546, 547

freemem 977

front hand 555

fsflush

file systems

flush daemon (fsflush) 794

ftok(3C) 301

G

gethrtime 130

gethrtime() 987

getmemid() 515

getoffset() 515

getprot() 516

gettype() 516

getvp() 516

gexec() 102

GLDv2 954

GLDv3 955

global priorities 223

graphics adapters 514

H

handspreadpages 555

hardswap 215

hardware address translation (HAT) 14, 28, 508, 545, 568, 570, 623

HAT functions

hat_alloc() 624

hat_chgattr() 624

hat_clrattr() 624

hat_free_end() 625

hat_free_start() 625

hat_get_mapped_size() 625

hat_getattr() 625

hat_map() 518

hat_memload() 625

hat_setattr() 625

hat_stats_disable() 625

hat_stats_enable() 625

hat_swapin() 625

hat_swapout() 625

hat_sync() 625

hat_unload() 625

mdb reference 684

Overview 623

structures

struct hat 628

ultrasparc 625

ultrasparc hat

 

tunables 666

hme_blk hash tables 643

hmeblock allocation 642

ism 657

kernel tlb misses 654

large pages 650

locking 662

locking order 664

shadow hme blocks 641

statistics 667

structure

struct hme_blk 638

structures

struct sf_hment 635

syncronization 661

tlb miss handling 653

translation table 631

translation table entry (TTE) 633

tsb allocation 649

tsb consistency 664

tsb miss handling 655

tsb page relocation. 651

tsb probes 655

tsb replacement 652

x64 hat 672

32-bit layour 678

64-bit layout 677

dma 683

implementation overview 679

mmu configuration 672

page tables 680

structures

struct hat 679

struct hment 682

struct htable 680

struct mmu 674

struct page 682

x86

address space layout 675

hardware buffering 892

hash_lookup_depth 592

hash_rescale 592

hash_size 592

HAT Support 536

heap 497, 516

heap mappings 491

High-Resolution Clock Interrupts 980

High-Resolution Timer 986

high-resolution timer 986

hsfs 32

I

I/O Bus and Device Management 17

I/O system 14

IA 14, 23

ibrary mappings 492

incore() 516

inode_cache 580

installboot 807

interprocess 434

interprocess communication

and zones 434

doors 335

kernel implementation 337

use in zones 405

identifier 301

introduction 24

key 301

object permission 302

POSIX 325

interfaces 326

message queues 331

named semaphores 329

semaphores 328

shared memory 327

posix

introduction 26

system v 294-325

access permission 302

introduction 25

ipc objects 294

kernel ipc functions 299

kernel modules 301

locking 297

message queue ID structure 322

message queue tuneables 321

message queues 320

namespace 296

resource controls ??-306

semaphore tuneables 318

semaphores 316

shared memory 307

tuneable parameters 306

Interprocess communication (IPC) 24

Interrupt 287

interrupt latency 13

Interrupt priorities 285

interrupt priorities 285

interrupts 13

dispatcher lock level 198

monitoring 288

Intimate Shared Memory 312, 514

intimate shared memory 312

Introduction 625

IPC 311

IPC - See interprocess communication

IPC See Interprocess communication

ipcrm 311

ISDN 15

ISM - See intimate shared memory

ISM See Intimate Shared Memory

ISM. See Intimate Shared Memory

K

kadb 1024

kas 1041

Kernel 76, 780

kernel 76

address space 566, 571, 1041

segkp segment 87

text segment 566

architecture 16

data structures

struct anon 523

struct segvn_data 517

struct uf_entry 710

struct vpage 520

functions

cfork() 96

chip_balance() 257

clock_tick() 979

cpu_choose() 255

exec_common() 100

exitlwps() 114

freeproc() 112

pid_assign() 96

setbackdq() 255

setfrontdq() 258

kernel runtime linker, krtld 1024

libkvm 1021

locks

lock object operations vector 897

map 566

memory 565

memory allocation 572

memory debugging 605

memory management 29

overview 15

process table 82

segments 27

sleep/wakeup

turnstiles 896

synchronization primitives 886

task queues

about 1003

Kernel Facilities (Clocks, timers, etc.) 17

kernel functions

cpu_resched() 257

kpreempt() 268

resume() 264

sleepq_insert() 278

kernel map 573

kernel Memory Segment Driver 574

kernel thread 76

Kernel Virtual Address Maps 1041

kernel Virtual Memory 565

kirk McKusick 797

kluster() 516

klustsize 561

kmdb

about 1019

module loading and unloading 1030

PROM interface 1036

structure 1027

terminal I/O 1032

kmem_depot_contention 588

kmem_reap_interval 588

kmem_reapahead 588

kstat

process_cache 83

segkp 87

kstats

task queues 1012

L

L2 cache 550

lage pages

free-list organization 531

large pages 486, 530

copy-on-write faults 534

faulting 532

freeing 535

hat support 650

page size-up/down policy 532

page-In 532

page-size code 532

procfs 537

system view 531

tools

libmpss.so 693

pmap 689

ppgsz 693

trapstat 686

-xpagesize 695

tutorial

allocated page sizes 688

compiler directives 695

configuring 692

cpu specifics 699

discovery of supported sizes 691

enabling large pages 692

interfaces 696

interposing with libmpss.so 693

measuring application performance 686

using ppgsz(1m) 693

when to use large pages 685

large-pages

issues 536

locking for i/o 534

lbolt 978

ld.so.1 53

ldstub instruction 890, 893, 894

Least Privilege 347

lgroup See Memory Placement Optimization

lgroups See locality groups

libmpss.so 693

library file 492

library mappings 492

libthread 48

lightweight process

agent LWP 128

and threads 71

displaying with ps 77

exit 113

ID 77

introduction 19

kernel object 74

limits 87

LWP ID 46

lwp_cache 82

observing with dtrace 75

process file system entry 121

relation to process and threads 44

resource usage 74

structure members 56, 76

Lightweight process (LWP) 565, 571

linkers

link-editor 53

runtime 53

runtime LD_DEBUG 55

links 806

load/store buffers (hardware) 892

loadable file system modules 717

locality groups 176

observing with dtrace 181

observing with kstat

Memory Placement Optimization

locality groups

observing with kstat 180

observing with mdb 178

lock 889

lockop() 516

log structured 840

lookuppn() 781

lotsfree 556, 559

LP64 13

lrusage 74, 129

LWP 49

LWP. See Lightweight Process

M

magazines 584

magic(4) 98

major page faults 508

malloc() 492, 496

many 56

mapelfexec() 102

mapped files 493, 498, 517

Massively parallel processor 886

max_nprocs 85, 86, 786

max_percent_cpu 558

maxpgio 560, 563

MAXPID 86

maxslp 562, 563

maxuprc 85

maxusers 84, 786

mdb

components of 1020

dcmds

::findleaks 615

::kmem_verify 617

callout 985

kmastat 82

IPC reference 344

memory 538, 564

module management 1021

projects dcmds and walker 453

walkers

cpu 191

rctl_dict_list 92

zones reference 444

memcntl() 766

memory 893

allocation with memory placement optimization 871

consistency models 893

hardware hierarchies 863

latency 887

locality groups 868

page

introduction 27

statistics

availrmem 525

memory barrier (membar) instructions 894

Memory Management 16

memory management

address spaces 490, 502

allocation 539

anonymous memory 520

backing store 482

copy-on-write 489

demand paging 484

file system memory allocation 775

free-list 546

growing the heap 496

hard swapping 562

hardware 481

hardware address translation 508, 623

heap 497

intimate shared memory 514

introduction 27

kernel address space 571

kernel memory allocation 572

large pages

malloc() 492

mapped files 498

mappings 490

mdb reference for physical memory 564

mdb reference for virtual memory 538

overview 489

page coloring 549

page create throttle 549

page faults 508

major 508

minor 508

protection 508

page level interfaces 547

page scanner 554

paging

minor faults 498

zero-fill-on-demand 497

physical memory allocation 539

physical page list 546

priority paging 554

process 492

process data mappings 491

process heap mappings 491

process stack mappings 492

process stacks 498

process text mappings 491

protection modes 508

sbrk() 497

scheduler 562

segment drivers 512

segmentation violation 509

segments 490

drivers

seg_map 826

seg_map 766

segkpm 767

segvn 516

slab allocator 576

swap scheduler 562

swapfs. see swapfs

swapping 484

TLB 568

tools

pmap 500

using dtrace 501

Watchpoints 527

memory management unit (MMU) 28, 484, 509, 519

Memory Mapped files 517

memory mappings 490

memory page locking 314

Memory Place Optimization

framework 867

Memory Placement Optimization

application programming interfaces 876

kernel parameters 874

locality group hierarchies 868

locality group hierarchy 880

locality group implementation 872

locality group structure 873

locality groups 174, 176, 868

observing with mdb 178

mdb dcmd's and walkers 883

memory allocation 871

on AMD Opteron 869

statistics 882

thread lgroup placement 870

using kstat to get statistics 883

memory placement optimization. see mpo

memory scheduler 562

Memory Sharing and Protection 482

memory_class 592

memorymappedi/o 764

message queues

limits

msgmni 321

POSIX

mq_maxmsq 331

mq_maxsz 331

mq_open(3R) 331

mq_receive(3R) 331

mq_send(3R) 331

System V IPC 25

microstate accounting 66, 130

min_percent_cpu 558

minor faults 498

minor page faults 508

mmap() 499, 518, 764

flags

MAP_PRIVATE 499, 519, 521, 525

MAP_SHARED 499

MMU See memory management unit

Module 724

module loading 17

Module Text and Data 569

mpo 486

MPO See Memory Placement Optimization

MS-DOS file system 14

multiple page sizes. see large pages

Multiprocessor Systems 886

Multithreaded 13, 889

kernel 13

mutex locks 891

adaptive lock 899

and driver interrupt registration 903

and priority level 900

definition 891

fields 903

functions

mutex_exit() 900

mutex_init() 900, 903

mutex_vector_enter() 903

mutex_vector_exit() 905

hardware considerations 889

hardware data hierarchy 892

instructions to implement locks 890

lock waiters bit 904

m_owner field 901

m_spinlock field 902

operations vector 897

overview 898

read-modify-write operation 889

sleep 911

spin locks 898, 899

statistics 904

test-and-set instruction 889

types

MUTEX_DEFAULT 902

mutual exclusion lock See mutex locks

mutual exclusion locks 886

atomic test-and-set instructions 891

N

ncsize 786

netstat -k 580

Network File System 31, 32

network file system 705

Networking 17

checksum offload 964

connection fan-out mechanism 940

Data-Link Services 961

Device Driver Framework 954

GLDv2 954

GLDv3 955

Interrupt Model 965

interrupt vs polling 966

IP

connection structure 939

kernel structures 932

IP Classifier 939

IP multipathing 953

link aggregation 962

loopback connections 946

MAC layer functions 957

multicast 954

plumbing NICs 953

socket programming interfaces 944

Solaris 10

design goals 933

squeue 934

kernel structure 936

processing 936

queuing models 936

stack framework 934

stack with STREAMS 929

TCP

kernel structures 931

TCP with STREAMS 930

UDP

kernel structures 931

UDP implementation 947

variables

ip_squeue_fanout 938

vertical perimeter 934

implementation 935

nfs 705

NFS See Network File System

nfs See Network File System

Niagara See Chip Multithreading

noexec_user_stack 59

Non Uniform Memory Access

about 864, 887

achieving performance 867

cache coherent (cc) NUMA 865

Non Uniform Memory Access. see numa

non_anon() 524

nonpageable 565

nonuniform 887

nucleus 568

numa 486

NUMA See Non Uniform Memory Access

O

Object 739

Object Caching 579

on-disk inode 813

open() 709

open-boot 568

P

p 63

page 482

coloring 547, 549, 552, 553

description 482

fault 508, 519

free list 546

hardware-specific 490

hash list 543

kernel functions

page_create() 547

page_create_va() 548, 552, 573

page_exists() 548

page_find() 543, 548

page_first() 548

page_free() 546, 548

page_hash 543

page_isfree() 548

page_ismod() 548

page_isref() 548

page_isshared() 548

page_lookup() 543, 546, 548

page_lookup_nowait() 543, 548

page_needfree() 548

page_next() 548

lists 546

locking 527

page faults 508

protection 482

reclaims 546

scanner 554

back hand (pager) 555

CPU Utilization Clamp 558

Implementation 560

implementation 560

nru time 558

Operation 554

operation 554

parameters 559

po_share 558

priority paging 554

shared library optimizations 558

tunables 559

structures 545

page (memory)

scanner 29

page cache 485

introduction 29

page Coloring 549

page fault 28

page level interfaces 547

page pache 754

page Protection and Advice 520

page scanner 554

page Structures 545

page table entries 569

page Throttle 549

page throttle 549

PAGE_HASH_SEARCH 544

pageable kernel Memory 571

paged vnodes 754

page-hash 543

page-in 483

page-Level Interfaces 547

pagelock() 516

page-out 482

pageout 482

page-out Algorithm and Parameters 555

pageprot 520

pages 482

definition 542

dirty 483

page-size code 532

pages - Locating 544

parallel architectures 888

Parameters That Limit pages paged Out 559

Partial Store Order (PSO) 893

Path 780

path-name

traversal functions 783

path-names

kernel functions

pn_alloc() 783

pn_free() 784

pn_insert() 784

management 780

traversal 783

pc file system 705

pcfs 32

PCWATCH 528

pfiles 716

physical memory 27, 490

Physical Memory Management 483

Physical page "memseg" Lists 546

physical page list 560

pid 64

pipe 24

pmap 500

POSIX IPC 26

internal functions 325

posix_spawn 94

pr_size 528

pr_vaddr 528

Preempting 22

preemption 289

monitoring with mdb 270

user 265

preemption control 235

prinit() 118

priorities

introduction 22-24

Priority 903

priority inheritance 911

priority inversion 911

priority paging 554

priority ranges 23

privilege 349

prnode 119

Process 84

process 20, 44, 111, 157

address space 47

components of 44

control terminal 160

creation 56, 92

and projects 451

tracing fork with dtrace 95

creation (fork/exec) 92-102

credentials 47, 348

and zones 408

credentials structure 60

displaying resource limits 89

environmental variables 68

execution 16

file descriptor 707

file system interfaces

file systems

process model abstractions 707

GID 60

group structures 159

groups 157

in zones 414

kernel process table 82

limits 87

lineage pointers 63

mappings

data 491

heap 491

libraries 492

stack 492

text 491

maximum per system 84

mdb dcmds 164

microstate accounting 66

open file structures 69

open files 71

open files structures 70

overview 15, 19

priorities 22

privilege set 61

privileges

about 347

allowed in zones 409

and exec 350

changing state 358

debugging 386

least privilege model 347

per-process state 356

privilege awareness 352

privilege sets 349

privilege-aware state 352

root privilege set 351

process identification (PID) structure 64

process states 78

process_cache 82

profiling 66

projects

project ID 446

related process (sibling) links 63

relationship to projects and tasks 455

resource control structures 91

resource controls 454

exceeding 460

max-msg-ids 321

max-msg-messages 322

max-msg-qbytes 322

max-sem-ids 318

max-sem-nsems 318

max-sem-ops 318

resource limits 88

core size 88

data segment size 88

file size 88

open files 89

privilege levels 90

stack size 88

virtual address space size 89

resource usage

lrusage fields 129

scheduling 16

session leader 160

sessions 157

stack 498

states 61, 62, 167

status 61

structure 45, 56

examining with mdb 67

lightweight process and thread support 65

lwp count 102

open files 69

p_as 58

p_cred 59

p_crlock 59

p_exec 58

p_lockp 59

p_lwpcnt 65

p_pglink 63

p_pidflag 62

p_pidp 64

p_ppid 63

p_sessp 64

p_stat 61

p_swapcnt 61

p_utime 65

p_wcode 62

p_wdata 62

PID 64

process file system fields 121

resource control sets 90

time fields 65

structure members 56

support for doors 337

table 44, 82

tasks 446

termination 111

freeproc() kernel function 112

thread objects 45

threads model 48

tools

pfiles 716

UID 60

unified process model 50

user area 68

zombie processes 111

process file system 115-128

file abstraction 120

files and directories 116-118

functions

pr_read_psinfo() 124

implementation 118-128

lightweight process entry 121

prcommon 120

prnode 119

procdir 118

process microstate accounting 130

process rights

debugging 386

in IRIX 354

in Linux 354

least privilege model 347

per-process state 356

privilege awareness 352

privilege-aware state 352

privileges allowed in zones 409

processor

controls

introduction 33

Processor partitioning and binding 14

processors

binding 169

cpu partitions 173

examining types with mdb 173

kernel chip abstractions 172

kernel chip_t structure 177

kernel cpu structure 175

kernel structures 171

parititions 193

processor sets 169, 174

procfs 32

and projects 452

and resource controls 463

in zones 416

libproc in debuggers 1020

projects

about 445

application programming interfaces 468

changing project or task ID 447

fork and exec 451

kernel structures 452

programming interfaces 449

project database 448

project structure 448

resource control policy 459

tracking utilization 446

projid 446

PROM 568

PROT_READ 499

PROT_WRITE 499

protection faults 508

prwatch 528

Pseudo File Systems 31

putpage() 526

Putting 779

R

RAM 481, 543

rctl 91

read() 738

read() and write() system calls 764, 766

reader/writer (RW) locks

definition 906

implementation 907-??

kernel functions

rw_enter() 906

rw_exit() 906

rw_init() 906

reader/writer locks 891, 895

definition 895, 908

functions

rw_enter_sleep() 908

rw_exit_wakeup() 910

kernel functions

rw_enter_sleep() 908

sleep 911

statistics 909

structure 909

wrwant bit 908

read-modify-write operation 889

realtime (scheduling class) 14, 15, 23

realtime_timeout() 981

rechoose_interval 256

reclaim() 583

reclaiming 546

Relaxed Memory Order (RMO) 893

reserved_procs 85

resource controls

attributes 449, 464

kernel functions 473

resource limits

core size 88

CPU time 88

data segment size 88

file size 88

open files 89

stack size 88

virtual address space size 89

resource management

and zones 437

framework 36

introduction 32

overview of bundled features 169

projects and tasks 445

resource map allocator 487

resource pools 174

RLIMIT 102

rlimits 455

root 348

root privileges 351

RT See realtime

runtime linker 53

RW locks See reader/writer locks

S

sbrk() 496, 497

scan rate parameters 556

sched 215

schedpaging() 560

scheduler 235

scheduler See dispatcher

scheduling 14

introduction 22-24

scheduling classes 206-222

class operations vector 213

class-specific data 208

class-specific structures 208

clock tick processing 228

fair share 237-244

kernel structures 212

thread priorities 237

tick processing 237

update processing 237

usage decay 239

fixed priority 245-246

introduction 23

kernel functions 213

admin 214

donice 216

enterclass 214

exitclass 214

fork 214

getclinfo 214

getclpri 214

globpri 216

parmsget 215

parmsin 214

parmsout 214

parmsset 215

preempt 216

setrun 216

sleep 216

swapin 215

swapout 215

tick 216

trapret 216

wakeup 216

yield 216

kernel structures 186, 211

real-time 247-249

dispatcher queues 259

timeshare

dispatcher table 219

dumping with dispadmin 220

ts_globpri 220

ts_maxwait 221

ts_quantum 220

ts_slpret 221

ts_tqexp 221

kernel functions

ts_sleep() 280

sleep 280

thread priorities 231

tick processing 234

update processing 236

types 168

update processing 230

SDLC 15

seg kmem 570, 580

seg_map statistics 772

segkp 87

segkpm 767

segmap 29, 566

memory management

segments

segmap

file systems

caches

segmap 768

segmap_fault() 769, 824

segmap_pagecreate() 826

segmap_release() 769, 826

segment (memory) 27, 512

drivers 14, 510

seg_dev 514

seg_drv 515

seg_kmem 514, 571

seg_kp 514, 571

seg_lock 515

seg_map 514, 571

seg_mapdev 515

seg_nf 515, 571

seg_spt 514

seg_vn 514

kernel segment 566

kernel segment driver methods

segkmem_checkprot() 574

segkmem_create() 574

segkmem_getprot() 574

segkmem_setprot() 574

seg_map segment 571

segmentation violation 509

SEGOP_FAULT() 514

segvn 516

segvn_create() 513, 518

segvn_fault() 519

sem_open(3R) 328, 329

semaphore value 317

semaphores 895

interfaces 328

kernel 895

kernel functions 915

limits (tuneables)

semmsl 318

semopm 318

operations vector 897

P and V operations 915

POSIX 293, 328

sema_sobj_ops 917

System V 25

sequential consistency model 893

sessions 157

set_anoninfo() 524

setfacl 829

setprot() 516

shared libraries 517

shared mappings 492

shared memory

POSIX 327

System V 25

Shared Memory Multiprocessor 886

sharing program binaries 482

si_pc 530

si_trapafter 530

Signals

types

SIGPROF 979

SIGVTALRM 979

signals

asynchronous 146, 151

description 135

dispositions 135

flags

SA_NOCLDWAIT 112

SA_SIGINFO 143

introduction 26

MAXSIG 135

originating as traps 146

resource control exceeded 461

SA_ONSTACK 145

sigaction(2) 117, 143, 145

siginfo 143

sigaltstack(2) 145

sigsend(2) 135

signal set 141

synchronous 135

testing for 149

trap signals 146

types

SIGABRT 111

SIGCHLD 140

SIGCLD 62, 111

SIGKILL 62

SIGSEGV 505, 509

SIGTRAP 528

SIGTSTP 158

SIGTTIN 158

SIGTTOU 158

SIGWAITING 113

SIGXCPU 139

SIGXFSZ 139

SNOWAIT 112

Simultaneous Multithreading 866

single kernel image 887

sixtyfour (64) bit support

64-bit kernel 13

slab allocator 29, 487, 576

::findleaks 615

::kmem_verify 617

allocator logging 618

bufctl_audit 614

cache parameters

kmem_content_maxsave 605

kmem_depot_contention 588

kmem_flags 603

kmem_log_size 605

kmem_reap_interval 588

kmem_reapahead 588

kmem_update_interval 586

KMF_AUDIT 618

KMF_CONTENTS 618

callback interfaces 583

debugging with the redzone 608

depot layer 584, 586

depot_alloc 592

depot_contention 592

depot_free 592

detecting memory corruption 607

detecting uninitialized data 611

examining allocations with MDB 605

fragmentation 577

functions

kmem_cache_alloc() 578, 582

kmem_cache_create() 578, 579, 582

kmem_cache_destroy() 578, 582

kmem_cache_free() 582

kmem_cache_stat() 582

kmem_freepages() 575

kmem_getpages() 575

implementation 583

kernel functions

slab_create 592

slab_destroy 592

slab_size 592

magazine sizes 586

magazines 584

memory allocation logging 612

overview 576

performance 576

rounds 584

statistics 578, 589

buf_avail 591

buf_constructed 592

buf_inuse 592

buf_max 592

buf_size 592

buf_total 592

full_magazines 592

global_alloc 592

global_free 592

magazine_size 592

structures 578

tracing 603

Slab Cache Parameters 588

sleep queues 276

sleeping for an I/O 23

slowscan 556, 560

SMP See Symmetric Multiprocessor

sockfs 32

Soft Swapping 562

softcall() 984

softswap 215

software traps 103

Solaris

Differentiators 12

features 3, 5

solaris history

sunos 2.0 705

Solaris Kernel Architecture 16

solstice diskSuite (SDS) 798

SPARC V7 493

SPARC V9 493

SPARCcenter 2000 493, 566

specfs 32

stack 27, 495, 565, 571

stack mappings 492

static linking 53

STREAMS

application programming interfaces 928

driver

about 927

In the network stack 929

messages 927

msgb structure 928

module definition 927

stream

definition 926

synchronous 950

use of task queues 1018

sun4u 64-bit kernel address space 566

sunos 2.0 705, 797

superuser 348

swap 543

swapfs 524, 561

implementation 525

kernel functions

swapfs_getpage() 525

swapfs_getvp() 525

kernel layer 524

swapfs Implementation 525

swapout() 516

swapping 484, 562

swtch() function 261-262

Symmetric multiprocessing 13

Symmetric multiprocessor 886

symmetric multiprocessor 863, 885

sync() 516

synchronization locks 886

synchronization objects 897

System Calls

interface 16

system calls 102

about 46

exec 52, 93, 97-100, 350, 446

exec switch table 98

examining with mdb 99

execsw structure

exec_magic 98

object-specific functions 98

exec() 53, 55

exit 111-112

fork 52, 65, 92-97, 446

 

tracing with dtrace 95

fork_fail_pending 96

forkall 96

kill 135

lwp_kill 135

mmap 293, 327

on SPARC 103-111

open 69

read() 766

semget 317, 319

setitimer(2) 987

setppriv 350

sigaction 117

wait 111

write() 766

system clock thread 977

System V IPC 25

System V Message Queues 25

See also message queues 25

System V Semaphores 25

See also semaphores 25

System V Shared Memory 25

See also shared memory 25

T

t 77, 78, 80, 113

task queues

about 1003

and kmem caches 1014

and vmem arenas 1015

device driver interfaces 1011

dtrace probes 1013

dynamic 1004

kernel interfaces 1007

kstat counters 1012

pool model 1006

system_taskq 1005

used by STREAMS 1018

when to use 1003

TCP

STREAMS stack 930

TCP/IP

IP Classifier 939

loopback connections 946

socket programming interfaces 944

TCP implementation 942

UDP implementation 947

text mappings 491

The 721, 776, 778, 785

thread 81, 249

thread creation 16

thread priorities 223

thread scheduler See dispatcher

thread stacks 565

thread, user and kernel

resource usage 74

threads

introduction 19

model 20

new model 21

overview 19

tick processing

clock

thread tick processing 979

threads, user and kernel 76

about 44

and lightweight processes 71

context switching 261

displaying with ps 77

home lgroup placement 870

IDs 77

kernel

about 76

affinity count 77

exit 113

flags 78

interrupt threads 286

maximum number of threads 87

observing lgroups and CPUs with dtrace 181

preempt flag 78

priorities 222

processor binding 77

reaping 114

state

TS_FREE 78

TS_ONPROC 78

TS_RUN 78

TS_SLEEP 78

TS_STOPPED 78

TS_ZOMB 78

states 166

structure fields 77, 77-81

</