Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 71671
b: refs/heads/master
c: b04cde3
h: refs/heads/master
i:
  71669: dcef584
  71667: 574c479
  71663: b53587b
v: v3
  • Loading branch information
Linus Torvalds committed Oct 19, 2007
1 parent 14f9688 commit ea49a0d
Show file tree
Hide file tree
Showing 684 changed files with 17,355 additions and 9,016 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 603c83da19cf42d0f94022ac2fa389a431e32b84
refs/heads/master: b04cde34cf1d006dfaf8523640f3a18bbb15ebaa
2 changes: 1 addition & 1 deletion trunk/Documentation/DocBook/kernel-api.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@

<sect1><title>Atomic and pointer manipulation</title>
!Iinclude/asm-x86/atomic_32.h
!Iinclude/asm-x86/unaligned_32.h
!Iinclude/asm-x86/unaligned.h
</sect1>

<sect1><title>Delaying, scheduling, and timer routines</title>
Expand Down
27 changes: 27 additions & 0 deletions trunk/Documentation/accounting/cgroupstats.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Control Groupstats is inspired by the discussion at
http://lkml.org/lkml/2007/4/11/187 and implements per cgroup statistics as
suggested by Andrew Morton in http://lkml.org/lkml/2007/4/11/263.

Per cgroup statistics infrastructure re-uses code from the taskstats
interface. A new set of cgroup operations are registered with commands
and attributes specific to cgroups. It should be very easy to
extend per cgroup statistics, by adding members to the cgroupstats
structure.

The current model for cgroupstats is a pull, a push model (to post
statistics on interesting events), should be very easy to add. Currently
user space requests for statistics by passing the cgroup path.
Statistics about the state of all the tasks in the cgroup is returned to
user space.

NOTE: We currently rely on delay accounting for extracting information
about tasks blocked on I/O. If CONFIG_TASK_DELAY_ACCT is disabled, this
information will not be available.

To extract cgroup statistics a utility very similar to getdelays.c
has been developed, the sample output of the utility is shown below

~/balbir/cgroupstats # ./getdelays -C "/cgroup/a"
sleeping 1, blocked 0, running 1, stopped 0, uninterruptible 0
~/balbir/cgroupstats # ./getdelays -C "/cgroup"
sleeping 155, blocked 0, running 1, stopped 0, uninterruptible 2
27 changes: 2 additions & 25 deletions trunk/Documentation/cachetlb.txt
Original file line number Diff line number Diff line change
Expand Up @@ -87,30 +87,7 @@ changes occur:

This is used primarily during fault processing.

5) void flush_tlb_pgtables(struct mm_struct *mm,
unsigned long start, unsigned long end)

The software page tables for address space 'mm' for virtual
addresses in the range 'start' to 'end-1' are being torn down.

Some platforms cache the lowest level of the software page tables
in a linear virtually mapped array, to make TLB miss processing
more efficient. On such platforms, since the TLB is caching the
software page table structure, it needs to be flushed when parts
of the software page table tree are unlinked/freed.

Sparc64 is one example of a platform which does this.

Usually, when munmap()'ing an area of user virtual address
space, the kernel leaves the page table parts around and just
marks the individual pte's as invalid. However, if very large
portions of the address space are unmapped, the kernel frees up
those portions of the software page tables to prevent potential
excessive kernel memory usage caused by erratic mmap/mmunmap
sequences. It is at these times that flush_tlb_pgtables will
be invoked.

6) void update_mmu_cache(struct vm_area_struct *vma,
5) void update_mmu_cache(struct vm_area_struct *vma,
unsigned long address, pte_t pte)

At the end of every page fault, this routine is invoked to
Expand All @@ -123,7 +100,7 @@ changes occur:
translations for software managed TLB configurations.
The sparc64 port currently does this.

7) void tlb_migrate_finish(struct mm_struct *mm)
6) void tlb_migrate_finish(struct mm_struct *mm)

This interface is called at the end of an explicit
process migration. This interface provides a hook
Expand Down
Loading

0 comments on commit ea49a0d

Please sign in to comment.