- [PDF]
Linux kernel synchronization
www.cs.stonybrook.edu/~porter/courses/…/sync-handout.pdf
File Format: PDF/Adobe Acrobat – Quick View
18 Nov 2011 – 1. Linux kernel synchronization. Don Porter. CSE 506. The old days. 十 Early/simple OSes (like JOS): No need for synchronization. 十 All kernel … - [PDF]
Scheduling, part 2
www.cs.stonybrook.edu/~porter/…/scheduling2-handout.pdf
File Format: PDF/Adobe Acrobat – Quick View
Don Porter. CSE 506. Last time… 十 Scheduling overview, key trade-offs, etc. 十 O(1) scheduler – older Linux scheduler. 十 Today: Completely Fair Scheduler … - [PDF]
Read-Copy Update (RCU)
www.cs.stonybrook.edu/~porter/courses/cse506/f11/…/rcu.pdf
File Format: PDF/Adobe Acrobat – Quick View
Don Porter. CSE 506 … occasionally written. 十 Like the Linux dcache. 十 RW locks …十 Trick: Linux doesn’t allow a process to sleep while traversing an RCU-protected … 十 Linked lists are the workhorse of the Linux kernel. 十 RCU lists are … - [PDF]
The Art and Science of Memory Allocation
www.cs.stonybrook.edu/~porter/courses/cse506/…/malloc.pdf
File Format: PDF/Adobe Acrobat – Quick View
十 Understand how memory allocators work. 十 In both kernel and applications … 十 Seminal paper. 十 We’ll also talk about how Linux allocates its own memory … - [PDF]
User-level scheduling
www.cs.stonybrook.edu/~porter/courses/…/user-threading.pdf
File Format: PDF/Adobe Acrobat – Quick View
User-level scheduling. Don Porter … 十 2 user threads on 1 kernel thread; start with explicit yield. 十 2 stacks … 十 Can map m user threads onto n kernel threads (m >= n). 十 Bookkeeping gets … 十 Modern Linux scheduler: 十 A gets a priority … - [PDF]
Device I/O Programming
www.cs.stonybrook.edu/~porter/courses/cse506/…/devices.pdf
File Format: PDF/Adobe Acrobat – Quick View
Device I/O. Programming. Don Porter … Parallel port (+I/O ports). (from Linux Device Drivers) …. 十 But could be remapped by the kernel. 十 Configuration space … - [PDF]
x86 Memory Protection and Translation
www.cs.stonybrook.edu/~porter/…/x86-paging-handout.pdf
File Format: PDF/Adobe Acrobat – Quick View
十 Privilege levels (separate user and kernel) x86 Processor Modes … 十 Bootloader puts the kernel at phys. address 0x00100000. 十 Kernel is compiled to run … - [PDF]
SELinux
www.cs.sunysb.edu/~porter/courses/…/selinux-handout.pdf
File Format: PDF/Adobe Acrobat – Quick View
5 Dec 2011 – Don Porter. CSE 506. MAC vs. DAC. 十 By default, Unix/Linux provides Discretionary Access. Control. 十 The user (subject) has discretion to … - [PDF]
The Art and Science of Memory Allocation
www.cs.sunysb.edu/~porter/courses/…/malloc-handout.pdf
File Format: PDF/Adobe Acrobat – Quick View
14 Nov 2011 – Don Porter. CSE 506. Lecture goal. 十 Understand how memory allocators work. 十 In both kernel and applications. 十 Understand trade-offs … - [PDF]
User-level scheduling
www.cs.sunysb.edu/~porter/…/user-threading-handout.pdf
File Format: PDF/Adobe Acrobat – Quick View
14 Nov 2011 – Don Porter. CSE 506. Context. 十 Multi-threaded application; more threads than CPUs. 十 Simple threading approach: 十 Create a kernel … - [PDF]
Networking
www.cs.sunysb.edu/~porter/courses/cse506/…/networking.pdf
File Format: PDF/Adobe Acrobat – Quick View
Linux implementation. 十 Sockets implemented in the kernel. 十 So are TCP, UDP and IP. 十 Benefits: 十 Application doesn’t need to be scheduled for TCP ACKs … - [PDF]
Process Address Spaces and Binary Formats
www.cs.sunysb.edu/~porter/…/address-spaces-handout.pdf
File Format: PDF/Adobe Acrobat – View as HTML
14 Nov 2011 – Don Porter – CSE 506. Housekeeping … 十 Kernel data structure memory use proportional to complexity of address space! Linux: vm_area_struct. 十Linux represents portions of a process with a vm_area_struct, or vma … - [PDF]
The Page Cache
www.cs.sunysb.edu/~porter/courses/…/page-cache-handout.pd…
File Format: PDF/Adobe Acrobat – Quick View
14 Nov 2011 – 十 Just like JOS, Linux represents physical memory with an array of page …. 十 Recall: a kernel thread is a task that only runs in the kernel’s … - [PDF]
Virtual File System
www.cs.sunysb.edu/~porter/courses/cse506/…/vfs-handout.pdf
File Format: PDF/Adobe Acrobat – Quick View
14 Nov 2011 – Don Porter. CSE 506 … only backed by kernel data structures … 十Kernel keeps a circular list of all of these … 十 Linux uses the name inode … - [PDF]
Device I/O Programming
www.cs.sunysb.edu/~porter/courses/…/devices-handout.pdf
File Format: PDF/Adobe Acrobat – Quick View
14 Nov 2011 – Don Porter. CSE 506. Overview … (from Linux Device Drivers) interrupts from the …. 十 But could be remapped by the kernel. 十 Configuration … - [PDF]
Copyright by Christopher J. Rossbach 2009
www.cs.utexas.edu/~rossbach/pubs/rossbach-thesis-final.pdf
File Format: PDF/Adobe Acrobat
by D Burger – Cited by 1 – Related articles
In particular, thanks to Hany Ramadan, Don Porter and Owen Hofmann ….. 3.3 Synchronization overhead in Linux, and TxLinux-SS. . . . . . . . . . 38 …. runtime in thekernel (by making system calls, e.g., to read and write files), an- other benefit of … - [PDF]
CS 380S – Theory and Practice of Secure Systems
www.cs.utexas.edu/~shmat/courses/…/06tocttou-porter.pdf
File Format: PDF/Adobe Acrobat – Quick View
Don Porter. CS 380S. TOCTTOU Attacks …. ◇Example: when two Linux threads share file … Kernel detection and compensation (RaceGuard). 4. User-mode … - [PDF]
Copyright by Jung Woo Ha 2009
www.cs.utexas.edu/users/habals/papers/ha-diss.pdf
File Format: PDF/Adobe Acrobat – Quick View
by SM Blackburn – Related articles
Bert Maher, Don Porter, Dimitris Prountzos, Christopher Rossbach, Hany Ra- madan…… We run a 2.6.24 Linux kernel with Pettersson’s performance counter … - [PDF]
Mining Statistical Correlations with Applications to Software Analysis
www.lib.utexas.edu/etd/d/2008/…/davisd55503.pdf
File Format: PDF/Adobe Acrobat – Quick View
by J Ghosh – Related articles
Matyas Sustik, along with Emmett’s Clarify research group: Don Porter, Hany ……classes), Foxpro (a database manager, 4 classes), and Iptables (a Linux kernel … -
Conference Reports
static.usenix.org/publications/login/2011…/OSDI10reports.pdf
tions that demonstrate kernel-based scalability problems and exploring the root … shelf 48-core Linux x86 server, running the applications on a RAM disk to avoid … Don Porter, Michael Roitzsch, Justin Seyster, Robert Soule, Nathan. Taylor … - [PDF]
Page Frame Reclaiming
www.cs.stonybrook.edu/~porter/courses/cse506/f11/…/pfra.pd…
File Format: PDF/Adobe Acrobat – Quick View
Don Porter. CSE 506 … 十 Reminder: Similar to JOS, Linux stores physical page descriptors in an array. 十 Contents …. 十 Not balanced (in Linux, some uses balance them). 十 Use case: … (from Understanding the Linux Kernel) that neither of … - [PDF]
Networking
www.cs.stonybrook.edu/~porter/…/networking-handout.pdf
File Format: PDF/Adobe Acrobat – View as HTML
(from Understanding Linux Network Internals). At each layer, numerous …. 十 Kerneltrusted with correct delivery of packets. 十 A single system call (i386): … - [PDF]
Scheduling
www.cs.stonybrook.edu/~porter/…/scheduling-handout.pdf
File Format: PDF/Adobe Acrobat – Quick View
(Linux) Terminology. 十 mm_struct – represents an address space in kernel. 十 task – represents a thread in the kernel. 十 A task points to 0 or 1 mm_structs … - [PDF]
Interrupts and System Calls
www.cs.stonybrook.edu/~porter/courses/…/f11/…/interrupts.pd…
File Format: PDF/Adobe Acrobat – Quick View
十 Our kernel is pretty simple (uniprocessor only). 十 Why not just share one TSS andkernel stack per-process? 十 Linux generalization: 十 One TSS per CPU … - [PDF]
Process Address Spaces and Binary Formats
www.cs.stonybrook.edu/~porter/courses/…/address-spaces.pdf
File Format: PDF/Adobe Acrobat – Quick View
Binary Formats. Don Porter – CSE 506 … 十 Kernel data structure memory use proportional to … 十 Linux represents portions of a process with a vm_area_struct, … - [PDF]
Encrypted File Systems
www.cs.stonybrook.edu/~porter/courses/cse506/…/cryptfs.pdf
File Format: PDF/Adobe Acrobat – Quick View
Don Porter. CSE 506 … 十 Linux: dm-crypt. 十 Windows: BitLocker. 十 Mac: …. 十 Decryption facilities usually need a booted kernel to work. 十 Big win for FS … - [PDF]
The Page Cache
www.cs.stonybrook.edu/~porter/courses/…/page-cache.pdf
File Format: PDF/Adobe Acrobat – Quick View
十 Just like JOS, Linux represents physical memory with an array of page structs …. 十 Recall: a kernel thread is a task that only runs in the kernel’s address … - [PDF]
VFS, Continued
www.cs.stonybrook.edu/~porter/courses/cse506/f11/…/vfs2.pd…
File Format: PDF/Adobe Acrobat – Quick View
VFS, Continued. Don Porter … Open summary. 十 Key kernel tasks: 十 Map a … 十 Or the network, or kernel data structures… 十 If found, check whether it is a … - [PDF]
Virtual File System
www.cs.stonybrook.edu/~porter/courses/cse506/f11/…/vfs.pdf
File Format: PDF/Adobe Acrobat – Quick View
Virtual File System. Don Porter … only backed by kernel data structures. 十 And, of …十 Kernel keeps a circular list of all of these … 十 Linux uses the name inode … - [PDF]
Improving File System Consistency and Durability with Patches and …
www.frostnet.net/chris/research/frost-dissertation.pdf
File Format: PDF/Adobe Acrobat – Quick View
by CC Frost – 2010 – Related articles
2.6.3 Benchmarks and Linux Comparison . …. Mike Dahlin, Jason Flinn, Galen Hunt,Don Porter, and Emmett Witchel ….. of Featherstitch with the Linux kernel. - [PDF]
Safe to the Last Instruction: Automated Verification of a Type-Safe …
people.csail.mit.edu/jeanyang/papers/pldi117-yang.pdf
File Format: PDF/Adobe Acrobat – Quick View
by J Yang – 2010 – Cited by 17 – Related articles
top of the Nucleus, and applications that run on top of the kernel. …… taken, for the Singularity operating system (2156 cycles), the Linux operating system ….. gale, Don Porter, Shaz Qadeer, Rustan Leino, Juan Chen, and David. Tarditi for their … -
Re: Generic platform name
coding.derkeiler.com/pdf/Archive/Tcl/comp…/msg01118.pdf
25 Nov 2005 – environment. Eg. the x86_64 Linux kernel recogonizes *two* mutually …The kernel can set of processor status put to switch … From: Don Porter … - [PDF]
OOMMF User’s Guide January 15, 2004 This manual documents …
math.nist.gov/oommf/doc/…/userguide11b2_20040115.pdf
File Format: PDF/Adobe Acrobat – Quick View
15 Jan 2004 – Mike Donahue and Don Porter. In order to allow a ….. Using the Cygwin toolkit Cygwin8 is a Linux-like environment for Windows, which includes the GNU C++…… kernel that describes the cell to cell magnetostatic interaction. - [PDF]
OOMMF User’s Guide October 30, 2002 This manual documents …
math.nist.gov/oommf/doc/…/userguide12a3_20021030.pdf
File Format: PDF/Adobe Acrobat – Quick View
30 Oct 2002 – Mike Donahue and Don Porter. …. Tcl name for OS: Linux 2.2.20 ……tization kernel, or special properties of the Fourier Transform when applied … - [PDF]
Better I/O through byte-addressable, persistent memory
www.cs.rochester.edu/~ipek/sosp09.pdf
File Format: PDF/Adobe Acrobat – Quick View
by J Condit – 2009 – Cited by 71 – Related articles
file’s data could be accessed without a trap to the kernel. Wear leveling will be required to ….. naling file system comparable to Linux’s миП. 2Available from иид ….. Eddie Kohler, Don Porter, and Emmett Witchel for their insightful feedback. 9. - [PDF]
MULTISCALE MATERIALS MODELLING PROGRAMS
www.doria.fi/bitstream/handle/…/nbnfi-fe201105171558.pdf?…Share
File Format: PDF/Adobe Acrobat – Quick View
by H Nenonen – 2010 – Related articles
17 May 2011 – The kernel for the paral- lel Fast Fourier …… Windows, Linux and Mac OS X developed since 1993, that finally makes it really easy to …. Development: The main contributors to OOMMF are Mike Donahue, and Don Porter.
Archive for July, 2012
22 Jul
Don Porter and his linux kernel related resources
12 Jul
How dtrace work: dtrace_consume()
While doing a gdb of dtrace in Linux, I got the follwing stacktraces:
Breakpoint 156, dtrace_consume (dtp=0x134f0f0, fp=0x7f58983b0260, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2381
2381 dtrace_bufdesc_t *buf = &dtp->dt_buf;
(gdb) bt
#0 dtrace_consume (dtp=0x134f0f0, fp=0x7f58983b0260, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2381
#1 0x0000000000461ae7 in dtrace_work (dtp=0x134f0f0, fp=0x7f58983b0260, pfunc=0x406ec7 <chew>, rfunc=0x406e54 <chewrec>, arg=0x0) at dt_work.c:294
#2 0x00000000004097ae in main (argc=3, argv=0x7fff045e9f68) at dtrace.c:1942
(gdb) cont
Continuing.
Breakpoint 159, dt_consume_begin (dtp=0x134f0f0, fp=0x7f58983b0260, buf=0x13513a8, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2261
2261 processorid_t cpu = dtp->dt_beganon;
(gdb) bt
#0 dt_consume_begin (dtp=0x134f0f0, fp=0x7f58983b0260, buf=0x13513a8, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2261
#1 0x0000000000427dda in dtrace_consume (dtp=0x134f0f0, fp=0x7f58983b0260, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2423
#2 0x0000000000461ae7 in dtrace_work (dtp=0x134f0f0, fp=0x7f58983b0260, pfunc=0x406ec7 <chew>, rfunc=0x406e54 <chewrec>, arg=0x0) at dt_work.c:294
#3 0x00000000004097ae in main (argc=3, argv=0x7fff045e9f68) at dtrace.c:1942
(gdb) cont
Continuing.
Breakpoint 163, dt_consume_cpu (dtp=0x134f0f0, fp=0x7f58983b0260, cpu=0, buf=0x13513a8, efunc=0x427617 <dt_consume_begin_probe>,
rfunc=0x4276f9 <dt_consume_begin_record>, arg=0x7fff045e9a30) at dt_consume.c:1725
1725 size_t offs, start = buf->dtbd_oldest, end = buf->dtbd_size;
(gdb)
Continuing.
cont
Breakpoint 167, dt_flowindent (dtp=0x134f0f0, data=0x7fff045e98a0, last=0, buf=0x13513a8, offs=0) at dt_consume.c:384
384 dtrace_probedesc_t *pd = data->dtpda_pdesc, *npd;
(gdb) cont
Continuing.
Breakpoint 161, dt_consume_begin_probe (data=0x7fff045e98a0, arg=0x7fff045e9a30) at dt_consume.c:2185
2185 dt_begin_t *begin = (dt_begin_t *)arg;
(gdb) bt
#0 dt_consume_begin_probe (data=0x7fff045e98a0, arg=0x7fff045e9a30) at dt_consume.c:2185
#1 0x0000000000426807 in dt_consume_cpu (dtp=0x134f0f0, fp=0x7f58983b0260, cpu=0, buf=0x13513a8, efunc=0x427617 <dt_consume_begin_probe>,
rfunc=0x4276f9 <dt_consume_begin_record>, arg=0x7fff045e9a30) at dt_consume.c:1777
#2 0x00000000004279a2 in dt_consume_begin (dtp=0x134f0f0, fp=0x7f58983b0260, buf=0x13513a8, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2304
#3 0x0000000000427dda in dtrace_consume (dtp=0x134f0f0, fp=0x7f58983b0260, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2423
#4 0x0000000000461ae7 in dtrace_work (dtp=0x134f0f0, fp=0x7f58983b0260, pfunc=0x406ec7 <chew>, rfunc=0x406e54 <chewrec>, arg=0x0) at dt_work.c:294
#5 0x00000000004097ae in main (argc=3, argv=0x7fff045e9f68) at dtrace.c:1942
(gdb) cont
Continuing.
Breakpoint 167, dt_flowindent (dtp=0x134f0f0, data=0x7fff045e98a0, last=645, buf=0x13513a8, offs=16) at dt_consume.c:384
384 dtrace_probedesc_t *pd = data->dtpda_pdesc, *npd;
(gdb) bt
#0 dt_flowindent (dtp=0x134f0f0, data=0x7fff045e98a0, last=645, buf=0x13513a8, offs=16) at dt_consume.c:384
#1 0x00000000004267f0 in dt_consume_cpu (dtp=0x134f0f0, fp=0x7f58983b0260, cpu=0, buf=0x13513a8, efunc=0x427617 <dt_consume_begin_probe>,
rfunc=0x4276f9 <dt_consume_begin_record>, arg=0x7fff045e9a30) at dt_consume.c:1775
#2 0x00000000004279a2 in dt_consume_begin (dtp=0x134f0f0, fp=0x7f58983b0260, buf=0x13513a8, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2304
#3 0x0000000000427dda in dtrace_consume (dtp=0x134f0f0, fp=0x7f58983b0260, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2423
#4 0x0000000000461ae7 in dtrace_work (dtp=0x134f0f0, fp=0x7f58983b0260, pfunc=0x406ec7 <chew>, rfunc=0x406e54 <chewrec>, arg=0x0) at dt_work.c:294
#5 0x00000000004097ae in main (argc=3, argv=0x7fff045e9f68) at dtrace.c:1942
(gdb) cont
Continuing.
Breakpoint 161, dt_consume_begin_probe (data=0x7fff045e98a0, arg=0x7fff045e9a30) at dt_consume.c:2185
2185 dt_begin_t *begin = (dt_begin_t *)arg;
(gdb) bt
#0 dt_consume_begin_probe (data=0x7fff045e98a0, arg=0x7fff045e9a30) at dt_consume.c:2185
#1 0x0000000000426807 in dt_consume_cpu (dtp=0x134f0f0, fp=0x7f58983b0260, cpu=0, buf=0x13513a8, efunc=0x427617 <dt_consume_begin_probe>,
rfunc=0x4276f9 <dt_consume_begin_record>, arg=0x7fff045e9a30) at dt_consume.c:1777
#2 0x00000000004279a2 in dt_consume_begin (dtp=0x134f0f0, fp=0x7f58983b0260, buf=0x13513a8, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2304
#3 0x0000000000427dda in dtrace_consume (dtp=0x134f0f0, fp=0x7f58983b0260, pf=0x406ec7 <chew>, rf=0x406e54 <chewrec>, arg=0x0) at dt_consume.c:2423
co#4 0x0000000000461ae7 in dtrace_work (dtp=0x134f0f0, fp=0x7f58983b0260, pfunc=0x406ec7 <chew>, rfunc=0x406e54 <chewrec>, arg=0x0) at dt_work.c:294
nt#5 0x00000000004097ae in main (argc=3, argv=0x7fff045e9f68) at dtrace.c:1942
(gdb) cont
Continuing.
Breakpoint 167, dt_flowindent (dtp=0x134f0f0, data=0x7fff045e98a0, last=13289, buf=0x13513a8, offs=20) at dt_consume.c:384
384 dtrace_probedesc_t *pd = data->dtpda_pdesc, *npd;
So it seemed dtrace_consume() is a central starting function here above.
Starting with dtrace in different OS:
http://www.opensource.apple.com/source/dtrace/dtrace-78/libdtrace/dt_consume.c
And searching the net:
http://www.nohuddleoffense.de/page/3/
and summarized here:
http://developers.sun.com/solaris/articles/java_on_solaris.html
And this is about using dtrace to understand MySQL internal:
http://dev.mysql.com/tech-resources/articles/getting_started_dtrace_saha.html
9 Jul
Running DTrace on Linux
Following:
https://github.com/tthtlc/linuxdtrace2.git
http://nwsmith.blogspot.sg/2011/03/trying-dtrace-for-linux-on-fedora-14.html
https://blog.itu.dk/SDT1-F2012/2012/02/06/system-monitoring/
And doing this on my Ubuntu (10.04 LTS, 64-bit):
apt-file search gelf.h
apt-get install libelf-dev
apt-get install libc6-dev-i386
unzip linuxdtrace2.zip (as downloaded from github in the URL shown above)
make all (Output is at: http://pastebin.com/M2RQ1rvg, seemingly to have error at the end, but the error is not a show-stopper.)
make install
make load
And finally:
./dtrace -n syscall::open*:'{printf("%s", stringof(arg0));}'
dtrace: description 'syscall::open*:' matched 8 probes
CPU ID FUNCTION:NAME
2 530082 open:entry /proc/stat
dtrace: error on enabled probe ID 2 (ID 530083: syscall:x64:open:return): invalid address (0x5) in action #1
2 530082 open:entry /sys/devices/system/cpu
dtrace: error on enabled probe ID 2 (ID 530083: syscall:x64:open:return): invalid address (0x5) in action #1
2 530082 open:entry /proc/stat
dtrace: error on enabled probe ID 2 (ID 530083: syscall:x64:open:return): invalid address (0x5) in action #1
0 530082 open:entry /dev/sr0
dtrace: error on enabled probe ID 2 (ID 530083: syscall:x64:open:return): invalid address (0x5) in action #1
0 530082 open:entry /proc/net/if_inet6
dtrace: error on enabled probe ID 2 (ID 530083: syscall:x64:open:return): invalid address (0xc) in action #1
0 530082 open:entry /opt/nessus/var/nessus/nessusd.restart
dtrace: error on enabled probe ID 2 (ID 530083: syscall:x64:open:return): invalid address (0xffffffffffffffff) in action #1
1 530082 open:entry /dev/sr0
dtrace: error on enabled probe ID 2 (ID 530083: syscall:x64:open:return): invalid address (0xffffffffffffffff) in action #1
TO DO:
http://www.google.com.sg/search?sourceid=chrome&ie=UTF-8&q=ctfconvert+for+linux
—
Regards,
Peter Teoh
You must be logged in to post a comment.