You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'linus' into x86/urgent
Merge reason: We need the x86/uv updates from upstream, to queue up
dependent fix.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -49,6 +49,7 @@ include/linux/compile.h
|
|||||||
include/linux/version.h
|
include/linux/version.h
|
||||||
include/linux/utsrelease.h
|
include/linux/utsrelease.h
|
||||||
include/linux/bounds.h
|
include/linux/bounds.h
|
||||||
|
include/generated
|
||||||
|
|
||||||
# stgit generated dirs
|
# stgit generated dirs
|
||||||
patches-*
|
patches-*
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
What: /debug/pktcdvd/pktcdvd[0-7]
|
What: /sys/kernel/debug/pktcdvd/pktcdvd[0-7]
|
||||||
Date: Oct. 2006
|
Date: Oct. 2006
|
||||||
KernelVersion: 2.6.20
|
KernelVersion: 2.6.20
|
||||||
Contact: Thomas Maier <balagi@justmail.de>
|
Contact: Thomas Maier <balagi@justmail.de>
|
||||||
@@ -10,10 +10,10 @@ debugfs interface
|
|||||||
The pktcdvd module (packet writing driver) creates
|
The pktcdvd module (packet writing driver) creates
|
||||||
these files in debugfs:
|
these files in debugfs:
|
||||||
|
|
||||||
/debug/pktcdvd/pktcdvd[0-7]/
|
/sys/kernel/debug/pktcdvd/pktcdvd[0-7]/
|
||||||
info (0444) Lots of driver statistics and infos.
|
info (0444) Lots of driver statistics and infos.
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
-------
|
-------
|
||||||
|
|
||||||
cat /debug/pktcdvd/pktcdvd0/info
|
cat /sys/kernel/debug/pktcdvd/pktcdvd0/info
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ PS_METHOD = $(prefer-db2x)
|
|||||||
|
|
||||||
###
|
###
|
||||||
# The targets that may be used.
|
# The targets that may be used.
|
||||||
PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs
|
PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs
|
||||||
|
|
||||||
BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
|
BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
|
||||||
xmldocs: $(BOOKS)
|
xmldocs: $(BOOKS)
|
||||||
@@ -213,11 +213,12 @@ silent_gen_xml = :
|
|||||||
dochelp:
|
dochelp:
|
||||||
@echo ' Linux kernel internal documentation in different formats:'
|
@echo ' Linux kernel internal documentation in different formats:'
|
||||||
@echo ' htmldocs - HTML'
|
@echo ' htmldocs - HTML'
|
||||||
@echo ' installmandocs - install man pages generated by mandocs'
|
|
||||||
@echo ' mandocs - man pages'
|
|
||||||
@echo ' pdfdocs - PDF'
|
@echo ' pdfdocs - PDF'
|
||||||
@echo ' psdocs - Postscript'
|
@echo ' psdocs - Postscript'
|
||||||
@echo ' xmldocs - XML DocBook'
|
@echo ' xmldocs - XML DocBook'
|
||||||
|
@echo ' mandocs - man pages'
|
||||||
|
@echo ' installmandocs - install man pages generated by mandocs'
|
||||||
|
@echo ' cleandocs - clean all generated DocBook files'
|
||||||
|
|
||||||
###
|
###
|
||||||
# Temporary files left by various tools
|
# Temporary files left by various tools
|
||||||
@@ -235,6 +236,10 @@ clean-files := $(DOCBOOKS) \
|
|||||||
|
|
||||||
clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man
|
clean-dirs := $(patsubst %.xml,%,$(DOCBOOKS)) man
|
||||||
|
|
||||||
|
cleandocs:
|
||||||
|
$(Q)rm -f $(call objectify, $(clean-files))
|
||||||
|
$(Q)rm -rf $(call objectify, $(clean-dirs))
|
||||||
|
|
||||||
# Declare the contents of the .PHONY variable as phony. We keep that
|
# Declare the contents of the .PHONY variable as phony. We keep that
|
||||||
# information in a variable se we can use it in if_changed and friends.
|
# information in a variable se we can use it in if_changed and friends.
|
||||||
|
|
||||||
|
|||||||
@@ -1040,23 +1040,21 @@ Front merges are handled by the binary trees in AS and deadline schedulers.
|
|||||||
iii. Plugging the queue to batch requests in anticipation of opportunities for
|
iii. Plugging the queue to batch requests in anticipation of opportunities for
|
||||||
merge/sort optimizations
|
merge/sort optimizations
|
||||||
|
|
||||||
This is just the same as in 2.4 so far, though per-device unplugging
|
|
||||||
support is anticipated for 2.5. Also with a priority-based i/o scheduler,
|
|
||||||
such decisions could be based on request priorities.
|
|
||||||
|
|
||||||
Plugging is an approach that the current i/o scheduling algorithm resorts to so
|
Plugging is an approach that the current i/o scheduling algorithm resorts to so
|
||||||
that it collects up enough requests in the queue to be able to take
|
that it collects up enough requests in the queue to be able to take
|
||||||
advantage of the sorting/merging logic in the elevator. If the
|
advantage of the sorting/merging logic in the elevator. If the
|
||||||
queue is empty when a request comes in, then it plugs the request queue
|
queue is empty when a request comes in, then it plugs the request queue
|
||||||
(sort of like plugging the bottom of a vessel to get fluid to build up)
|
(sort of like plugging the bath tub of a vessel to get fluid to build up)
|
||||||
till it fills up with a few more requests, before starting to service
|
till it fills up with a few more requests, before starting to service
|
||||||
the requests. This provides an opportunity to merge/sort the requests before
|
the requests. This provides an opportunity to merge/sort the requests before
|
||||||
passing them down to the device. There are various conditions when the queue is
|
passing them down to the device. There are various conditions when the queue is
|
||||||
unplugged (to open up the flow again), either through a scheduled task or
|
unplugged (to open up the flow again), either through a scheduled task or
|
||||||
could be on demand. For example wait_on_buffer sets the unplugging going
|
could be on demand. For example wait_on_buffer sets the unplugging going
|
||||||
(by running tq_disk) so the read gets satisfied soon. So in the read case,
|
through sync_buffer() running blk_run_address_space(mapping). Or the caller
|
||||||
the queue gets explicitly unplugged as part of waiting for completion,
|
can do it explicity through blk_unplug(bdev). So in the read case,
|
||||||
in fact all queues get unplugged as a side-effect.
|
the queue gets explicitly unplugged as part of waiting for completion on that
|
||||||
|
buffer. For page driven IO, the address space ->sync_page() takes care of
|
||||||
|
doing the blk_run_address_space().
|
||||||
|
|
||||||
Aside:
|
Aside:
|
||||||
This is kind of controversial territory, as it's not clear if plugging is
|
This is kind of controversial territory, as it's not clear if plugging is
|
||||||
@@ -1067,11 +1065,6 @@ Aside:
|
|||||||
multi-page bios being queued in one shot, we may not need to wait to merge
|
multi-page bios being queued in one shot, we may not need to wait to merge
|
||||||
a big request from the broken up pieces coming by.
|
a big request from the broken up pieces coming by.
|
||||||
|
|
||||||
Per-queue granularity unplugging (still a Todo) may help reduce some of the
|
|
||||||
concerns with just a single tq_disk flush approach. Something like
|
|
||||||
blk_kick_queue() to unplug a specific queue (right away ?)
|
|
||||||
or optionally, all queues, is in the plan.
|
|
||||||
|
|
||||||
4.4 I/O contexts
|
4.4 I/O contexts
|
||||||
I/O contexts provide a dynamically allocated per process data area. They may
|
I/O contexts provide a dynamically allocated per process data area. They may
|
||||||
be used in I/O schedulers, and in the block layer (could be used for IO statis,
|
be used in I/O schedulers, and in the block layer (could be used for IO statis,
|
||||||
|
|||||||
@@ -30,3 +30,21 @@ The above steps create a new group g1 and move the current shell
|
|||||||
process (bash) into it. CPU time consumed by this bash and its children
|
process (bash) into it. CPU time consumed by this bash and its children
|
||||||
can be obtained from g1/cpuacct.usage and the same is accumulated in
|
can be obtained from g1/cpuacct.usage and the same is accumulated in
|
||||||
/cgroups/cpuacct.usage also.
|
/cgroups/cpuacct.usage also.
|
||||||
|
|
||||||
|
cpuacct.stat file lists a few statistics which further divide the
|
||||||
|
CPU time obtained by the cgroup into user and system times. Currently
|
||||||
|
the following statistics are supported:
|
||||||
|
|
||||||
|
user: Time spent by tasks of the cgroup in user mode.
|
||||||
|
system: Time spent by tasks of the cgroup in kernel mode.
|
||||||
|
|
||||||
|
user and system are in USER_HZ unit.
|
||||||
|
|
||||||
|
cpuacct controller uses percpu_counter interface to collect user and
|
||||||
|
system times. This has two side effects:
|
||||||
|
|
||||||
|
- It is theoretically possible to see wrong values for user and system times.
|
||||||
|
This is because percpu_counter_read() on 32bit systems isn't safe
|
||||||
|
against concurrent writes.
|
||||||
|
- It is possible to see slightly outdated values for user and system times
|
||||||
|
due to the batch processing nature of percpu_counter.
|
||||||
|
|||||||
@@ -6,15 +6,14 @@ used here with the memory controller that is used in hardware.
|
|||||||
|
|
||||||
Salient features
|
Salient features
|
||||||
|
|
||||||
a. Enable control of both RSS (mapped) and Page Cache (unmapped) pages
|
a. Enable control of Anonymous, Page Cache (mapped and unmapped) and
|
||||||
|
Swap Cache memory pages.
|
||||||
b. The infrastructure allows easy addition of other types of memory to control
|
b. The infrastructure allows easy addition of other types of memory to control
|
||||||
c. Provides *zero overhead* for non memory controller users
|
c. Provides *zero overhead* for non memory controller users
|
||||||
d. Provides a double LRU: global memory pressure causes reclaim from the
|
d. Provides a double LRU: global memory pressure causes reclaim from the
|
||||||
global LRU; a cgroup on hitting a limit, reclaims from the per
|
global LRU; a cgroup on hitting a limit, reclaims from the per
|
||||||
cgroup LRU
|
cgroup LRU
|
||||||
|
|
||||||
NOTE: Swap Cache (unmapped) is not accounted now.
|
|
||||||
|
|
||||||
Benefits and Purpose of the memory controller
|
Benefits and Purpose of the memory controller
|
||||||
|
|
||||||
The memory controller isolates the memory behaviour of a group of tasks
|
The memory controller isolates the memory behaviour of a group of tasks
|
||||||
@@ -290,34 +289,44 @@ will be charged as a new owner of it.
|
|||||||
moved to the parent. If you want to avoid that, force_empty will be useful.
|
moved to the parent. If you want to avoid that, force_empty will be useful.
|
||||||
|
|
||||||
5.2 stat file
|
5.2 stat file
|
||||||
memory.stat file includes following statistics (now)
|
|
||||||
cache - # of pages from page-cache and shmem.
|
|
||||||
rss - # of pages from anonymous memory.
|
|
||||||
pgpgin - # of event of charging
|
|
||||||
pgpgout - # of event of uncharging
|
|
||||||
active_anon - # of pages on active lru of anon, shmem.
|
|
||||||
inactive_anon - # of pages on active lru of anon, shmem
|
|
||||||
active_file - # of pages on active lru of file-cache
|
|
||||||
inactive_file - # of pages on inactive lru of file cache
|
|
||||||
unevictable - # of pages cannot be reclaimed.(mlocked etc)
|
|
||||||
|
|
||||||
Below is depend on CONFIG_DEBUG_VM.
|
memory.stat file includes following statistics
|
||||||
inactive_ratio - VM internal parameter. (see mm/page_alloc.c)
|
|
||||||
recent_rotated_anon - VM internal parameter. (see mm/vmscan.c)
|
|
||||||
recent_rotated_file - VM internal parameter. (see mm/vmscan.c)
|
|
||||||
recent_scanned_anon - VM internal parameter. (see mm/vmscan.c)
|
|
||||||
recent_scanned_file - VM internal parameter. (see mm/vmscan.c)
|
|
||||||
|
|
||||||
Memo:
|
cache - # of bytes of page cache memory.
|
||||||
|
rss - # of bytes of anonymous and swap cache memory.
|
||||||
|
pgpgin - # of pages paged in (equivalent to # of charging events).
|
||||||
|
pgpgout - # of pages paged out (equivalent to # of uncharging events).
|
||||||
|
active_anon - # of bytes of anonymous and swap cache memory on active
|
||||||
|
lru list.
|
||||||
|
inactive_anon - # of bytes of anonymous memory and swap cache memory on
|
||||||
|
inactive lru list.
|
||||||
|
active_file - # of bytes of file-backed memory on active lru list.
|
||||||
|
inactive_file - # of bytes of file-backed memory on inactive lru list.
|
||||||
|
unevictable - # of bytes of memory that cannot be reclaimed (mlocked etc).
|
||||||
|
|
||||||
|
The following additional stats are dependent on CONFIG_DEBUG_VM.
|
||||||
|
|
||||||
|
inactive_ratio - VM internal parameter. (see mm/page_alloc.c)
|
||||||
|
recent_rotated_anon - VM internal parameter. (see mm/vmscan.c)
|
||||||
|
recent_rotated_file - VM internal parameter. (see mm/vmscan.c)
|
||||||
|
recent_scanned_anon - VM internal parameter. (see mm/vmscan.c)
|
||||||
|
recent_scanned_file - VM internal parameter. (see mm/vmscan.c)
|
||||||
|
|
||||||
|
Memo:
|
||||||
recent_rotated means recent frequency of lru rotation.
|
recent_rotated means recent frequency of lru rotation.
|
||||||
recent_scanned means recent # of scans to lru.
|
recent_scanned means recent # of scans to lru.
|
||||||
showing for better debug please see the code for meanings.
|
showing for better debug please see the code for meanings.
|
||||||
|
|
||||||
|
Note:
|
||||||
|
Only anonymous and swap cache memory is listed as part of 'rss' stat.
|
||||||
|
This should not be confused with the true 'resident set size' or the
|
||||||
|
amount of physical memory used by the cgroup. Per-cgroup rss
|
||||||
|
accounting is not done yet.
|
||||||
|
|
||||||
5.3 swappiness
|
5.3 swappiness
|
||||||
Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
|
Similar to /proc/sys/vm/swappiness, but affecting a hierarchy of groups only.
|
||||||
|
|
||||||
Following cgroup's swapiness can't be changed.
|
Following cgroups' swapiness can't be changed.
|
||||||
- root cgroup (uses /proc/sys/vm/swappiness).
|
- root cgroup (uses /proc/sys/vm/swappiness).
|
||||||
- a cgroup which uses hierarchy and it has child cgroup.
|
- a cgroup which uses hierarchy and it has child cgroup.
|
||||||
- a cgroup which uses hierarchy and not the root of hierarchy.
|
- a cgroup which uses hierarchy and not the root of hierarchy.
|
||||||
|
|||||||
@@ -47,13 +47,18 @@ to work with it.
|
|||||||
|
|
||||||
2. Basic accounting routines
|
2. Basic accounting routines
|
||||||
|
|
||||||
a. void res_counter_init(struct res_counter *rc)
|
a. void res_counter_init(struct res_counter *rc,
|
||||||
|
struct res_counter *rc_parent)
|
||||||
|
|
||||||
Initializes the resource counter. As usual, should be the first
|
Initializes the resource counter. As usual, should be the first
|
||||||
routine called for a new counter.
|
routine called for a new counter.
|
||||||
|
|
||||||
b. int res_counter_charge[_locked]
|
The struct res_counter *parent can be used to define a hierarchical
|
||||||
(struct res_counter *rc, unsigned long val)
|
child -> parent relationship directly in the res_counter structure,
|
||||||
|
NULL can be used to define no relationship.
|
||||||
|
|
||||||
|
c. int res_counter_charge(struct res_counter *rc, unsigned long val,
|
||||||
|
struct res_counter **limit_fail_at)
|
||||||
|
|
||||||
When a resource is about to be allocated it has to be accounted
|
When a resource is about to be allocated it has to be accounted
|
||||||
with the appropriate resource counter (controller should determine
|
with the appropriate resource counter (controller should determine
|
||||||
@@ -67,15 +72,25 @@ to work with it.
|
|||||||
* if the charging is performed first, then it should be uncharged
|
* if the charging is performed first, then it should be uncharged
|
||||||
on error path (if the one is called).
|
on error path (if the one is called).
|
||||||
|
|
||||||
c. void res_counter_uncharge[_locked]
|
If the charging fails and a hierarchical dependency exists, the
|
||||||
|
limit_fail_at parameter is set to the particular res_counter element
|
||||||
|
where the charging failed.
|
||||||
|
|
||||||
|
d. int res_counter_charge_locked
|
||||||
|
(struct res_counter *rc, unsigned long val)
|
||||||
|
|
||||||
|
The same as res_counter_charge(), but it must not acquire/release the
|
||||||
|
res_counter->lock internally (it must be called with res_counter->lock
|
||||||
|
held).
|
||||||
|
|
||||||
|
e. void res_counter_uncharge[_locked]
|
||||||
(struct res_counter *rc, unsigned long val)
|
(struct res_counter *rc, unsigned long val)
|
||||||
|
|
||||||
When a resource is released (freed) it should be de-accounted
|
When a resource is released (freed) it should be de-accounted
|
||||||
from the resource counter it was accounted to. This is called
|
from the resource counter it was accounted to. This is called
|
||||||
"uncharging".
|
"uncharging".
|
||||||
|
|
||||||
The _locked routines imply that the res_counter->lock is taken.
|
The _locked routines imply that the res_counter->lock is taken.
|
||||||
|
|
||||||
|
|
||||||
2.1 Other accounting routines
|
2.1 Other accounting routines
|
||||||
|
|
||||||
|
|||||||
@@ -169,3 +169,62 @@ three different ways to find such a match:
|
|||||||
be probed later if another device registers. (Which is OK, since
|
be probed later if another device registers. (Which is OK, since
|
||||||
this interface is only for use with non-hotpluggable devices.)
|
this interface is only for use with non-hotpluggable devices.)
|
||||||
|
|
||||||
|
|
||||||
|
Early Platform Devices and Drivers
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The early platform interfaces provide platform data to platform device
|
||||||
|
drivers early on during the system boot. The code is built on top of the
|
||||||
|
early_param() command line parsing and can be executed very early on.
|
||||||
|
|
||||||
|
Example: "earlyprintk" class early serial console in 6 steps
|
||||||
|
|
||||||
|
1. Registering early platform device data
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The architecture code registers platform device data using the function
|
||||||
|
early_platform_add_devices(). In the case of early serial console this
|
||||||
|
should be hardware configuration for the serial port. Devices registered
|
||||||
|
at this point will later on be matched against early platform drivers.
|
||||||
|
|
||||||
|
2. Parsing kernel command line
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The architecture code calls parse_early_param() to parse the kernel
|
||||||
|
command line. This will execute all matching early_param() callbacks.
|
||||||
|
User specified early platform devices will be registered at this point.
|
||||||
|
For the early serial console case the user can specify port on the
|
||||||
|
kernel command line as "earlyprintk=serial.0" where "earlyprintk" is
|
||||||
|
the class string, "serial" is the name of the platfrom driver and
|
||||||
|
0 is the platform device id. If the id is -1 then the dot and the
|
||||||
|
id can be omitted.
|
||||||
|
|
||||||
|
3. Installing early platform drivers belonging to a certain class
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The architecture code may optionally force registration of all early
|
||||||
|
platform drivers belonging to a certain class using the function
|
||||||
|
early_platform_driver_register_all(). User specified devices from
|
||||||
|
step 2 have priority over these. This step is omitted by the serial
|
||||||
|
driver example since the early serial driver code should be disabled
|
||||||
|
unless the user has specified port on the kernel command line.
|
||||||
|
|
||||||
|
4. Early platform driver registration
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
Compiled-in platform drivers making use of early_platform_init() are
|
||||||
|
automatically registered during step 2 or 3. The serial driver example
|
||||||
|
should use early_platform_init("earlyprintk", &platform_driver).
|
||||||
|
|
||||||
|
5. Probing of early platform drivers belonging to a certain class
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The architecture code calls early_platform_driver_probe() to match
|
||||||
|
registered early platform devices associated with a certain class with
|
||||||
|
registered early platform drivers. Matched devices will get probed().
|
||||||
|
This step can be executed at any point during the early boot. As soon
|
||||||
|
as possible may be good for the serial port case.
|
||||||
|
|
||||||
|
6. Inside the early platform driver probe()
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
The driver code needs to take special care during early boot, especially
|
||||||
|
when it comes to memory allocation and interrupt registration. The code
|
||||||
|
in the probe() function can use is_early_platform_device() to check if
|
||||||
|
it is called at early platform device or at the regular platform device
|
||||||
|
time. The early serial driver performs register_console() at this point.
|
||||||
|
|
||||||
|
For further information, see <linux/platform_device.h>.
|
||||||
|
|||||||
@@ -428,3 +428,12 @@ Why: In 2.6.27, the semantics of /sys/bus/pci/slots was redefined to
|
|||||||
After a reasonable transition period, we will remove the legacy
|
After a reasonable transition period, we will remove the legacy
|
||||||
fakephp interface.
|
fakephp interface.
|
||||||
Who: Alex Chiang <achiang@hp.com>
|
Who: Alex Chiang <achiang@hp.com>
|
||||||
|
|
||||||
|
---------------------------
|
||||||
|
|
||||||
|
What: i2c-voodoo3 driver
|
||||||
|
When: October 2009
|
||||||
|
Why: Superseded by tdfxfb. I2C/DDC support used to live in a separate
|
||||||
|
driver but this caused driver conflicts.
|
||||||
|
Who: Jean Delvare <khali@linux-fr.org>
|
||||||
|
Krzysztof Helt <krzysztof.h1@wp.pl>
|
||||||
|
|||||||
@@ -56,9 +56,10 @@ workloads and can fully utilize the bandwidth to the servers when doing bulk
|
|||||||
data transfers.
|
data transfers.
|
||||||
|
|
||||||
POHMELFS clients operate with a working set of servers and are capable of balancing read-only
|
POHMELFS clients operate with a working set of servers and are capable of balancing read-only
|
||||||
operations (like lookups or directory listings) between them.
|
operations (like lookups or directory listings) between them according to IO priorities.
|
||||||
Administrators can add or remove servers from the set at run-time via special commands (described
|
Administrators can add or remove servers from the set at run-time via special commands (described
|
||||||
in Documentation/pohmelfs/info.txt file). Writes are replicated to all servers.
|
in Documentation/pohmelfs/info.txt file). Writes are replicated to all servers, which are connected
|
||||||
|
with write permission turned on. IO priority and permissions can be changed in run-time.
|
||||||
|
|
||||||
POHMELFS is capable of full data channel encryption and/or strong crypto hashing.
|
POHMELFS is capable of full data channel encryption and/or strong crypto hashing.
|
||||||
One can select any kernel supported cipher, encryption mode, hash type and operation mode
|
One can select any kernel supported cipher, encryption mode, hash type and operation mode
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
POHMELFS usage information.
|
POHMELFS usage information.
|
||||||
|
|
||||||
Mount options:
|
Mount options.
|
||||||
|
All but index, number of crypto threads and maximum IO size can changed via remount.
|
||||||
|
|
||||||
idx=%u
|
idx=%u
|
||||||
Each mountpoint is associated with a special index via this option.
|
Each mountpoint is associated with a special index via this option.
|
||||||
Administrator can add or remove servers from the given index, so all mounts,
|
Administrator can add or remove servers from the given index, so all mounts,
|
||||||
@@ -52,16 +54,27 @@ mcache_timeout=%u
|
|||||||
|
|
||||||
Usage examples.
|
Usage examples.
|
||||||
|
|
||||||
Add (or remove if it already exists) server server1.net:1025 into the working set with index $idx
|
Add server server1.net:1025 into the working set with index $idx
|
||||||
with appropriate hash algorithm and key file and cipher algorithm, mode and key file:
|
with appropriate hash algorithm and key file and cipher algorithm, mode and key file:
|
||||||
$cfg -a server1.net -p 1025 -i $idx -K $hash_key -k $cipher_key
|
$cfg A add -a server1.net -p 1025 -i $idx -K $hash_key -k $cipher_key
|
||||||
|
|
||||||
Mount filesystem with given index $idx to /mnt mountpoint.
|
Mount filesystem with given index $idx to /mnt mountpoint.
|
||||||
Client will connect to all servers specified in the working set via previous command:
|
Client will connect to all servers specified in the working set via previous command:
|
||||||
mount -t pohmel -o idx=$idx q /mnt
|
mount -t pohmel -o idx=$idx q /mnt
|
||||||
|
|
||||||
One can add or remove servers from working set after mounting too.
|
Change permissions to read-only (-I 1 option, '-I 2' - write-only, 3 - rw):
|
||||||
|
$cfg A modify -a server1.net -p 1025 -i $idx -I 1
|
||||||
|
|
||||||
|
Change IO priority to 123 (node with the highest priority gets read requests).
|
||||||
|
$cfg A modify -a server1.net -p 1025 -i $idx -P 123
|
||||||
|
|
||||||
|
One can check currect status of all connections in the mountstats file:
|
||||||
|
# cat /proc/$PID/mountstats
|
||||||
|
...
|
||||||
|
device none mounted on /mnt with fstype pohmel
|
||||||
|
idx addr(:port) socket_type protocol active priority permissions
|
||||||
|
0 server1.net:1026 1 6 1 250 1
|
||||||
|
0 server2.net:1025 1 6 1 123 3
|
||||||
|
|
||||||
Server installation.
|
Server installation.
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,49 @@ Partitions and P_Keys
|
|||||||
The P_Key for any interface is given by the "pkey" file, and the
|
The P_Key for any interface is given by the "pkey" file, and the
|
||||||
main interface for a subinterface is in "parent."
|
main interface for a subinterface is in "parent."
|
||||||
|
|
||||||
|
Datagram vs Connected modes
|
||||||
|
|
||||||
|
The IPoIB driver supports two modes of operation: datagram and
|
||||||
|
connected. The mode is set and read through an interface's
|
||||||
|
/sys/class/net/<intf name>/mode file.
|
||||||
|
|
||||||
|
In datagram mode, the IB UD (Unreliable Datagram) transport is used
|
||||||
|
and so the interface MTU has is equal to the IB L2 MTU minus the
|
||||||
|
IPoIB encapsulation header (4 bytes). For example, in a typical IB
|
||||||
|
fabric with a 2K MTU, the IPoIB MTU will be 2048 - 4 = 2044 bytes.
|
||||||
|
|
||||||
|
In connected mode, the IB RC (Reliable Connected) transport is used.
|
||||||
|
Connected mode is to takes advantage of the connected nature of the
|
||||||
|
IB transport and allows an MTU up to the maximal IP packet size of
|
||||||
|
64K, which reduces the number of IP packets needed for handling
|
||||||
|
large UDP datagrams, TCP segments, etc and increases the performance
|
||||||
|
for large messages.
|
||||||
|
|
||||||
|
In connected mode, the interface's UD QP is still used for multicast
|
||||||
|
and communication with peers that don't support connected mode. In
|
||||||
|
this case, RX emulation of ICMP PMTU packets is used to cause the
|
||||||
|
networking stack to use the smaller UD MTU for these neighbours.
|
||||||
|
|
||||||
|
Stateless offloads
|
||||||
|
|
||||||
|
If the IB HW supports IPoIB stateless offloads, IPoIB advertises
|
||||||
|
TCP/IP checksum and/or Large Send (LSO) offloading capability to the
|
||||||
|
network stack.
|
||||||
|
|
||||||
|
Large Receive (LRO) offloading is also implemented and may be turned
|
||||||
|
on/off using ethtool calls. Currently LRO is supported only for
|
||||||
|
checksum offload capable devices.
|
||||||
|
|
||||||
|
Stateless offloads are supported only in datagram mode.
|
||||||
|
|
||||||
|
Interrupt moderation
|
||||||
|
|
||||||
|
If the underlying IB device supports CQ event moderation, one can
|
||||||
|
use ethtool to set interrupt mitigation parameters and thus reduce
|
||||||
|
the overhead incurred by handling interrupts. The main code path of
|
||||||
|
IPoIB doesn't use events for TX completion signaling so only RX
|
||||||
|
moderation is supported.
|
||||||
|
|
||||||
Debugging Information
|
Debugging Information
|
||||||
|
|
||||||
By compiling the IPoIB driver with CONFIG_INFINIBAND_IPOIB_DEBUG set
|
By compiling the IPoIB driver with CONFIG_INFINIBAND_IPOIB_DEBUG set
|
||||||
@@ -55,3 +98,5 @@ References
|
|||||||
http://ietf.org/rfc/rfc4391.txt
|
http://ietf.org/rfc/rfc4391.txt
|
||||||
IP over InfiniBand (IPoIB) Architecture (RFC 4392)
|
IP over InfiniBand (IPoIB) Architecture (RFC 4392)
|
||||||
http://ietf.org/rfc/rfc4392.txt
|
http://ietf.org/rfc/rfc4392.txt
|
||||||
|
IP over InfiniBand: Connected Mode (RFC 4755)
|
||||||
|
http://ietf.org/rfc/rfc4755.txt
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
rotary-encoder - a generic driver for GPIO connected devices
|
||||||
|
Daniel Mack <daniel@caiaq.de>, Feb 2009
|
||||||
|
|
||||||
|
0. Function
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Rotary encoders are devices which are connected to the CPU or other
|
||||||
|
peripherals with two wires. The outputs are phase-shifted by 90 degrees
|
||||||
|
and by triggering on falling and rising edges, the turn direction can
|
||||||
|
be determined.
|
||||||
|
|
||||||
|
The phase diagram of these two outputs look like this:
|
||||||
|
|
||||||
|
_____ _____ _____
|
||||||
|
| | | | | |
|
||||||
|
Channel A ____| |_____| |_____| |____
|
||||||
|
|
||||||
|
: : : : : : : : : : : :
|
||||||
|
__ _____ _____ _____
|
||||||
|
| | | | | | |
|
||||||
|
Channel B |_____| |_____| |_____| |__
|
||||||
|
|
||||||
|
: : : : : : : : : : : :
|
||||||
|
Event a b c d a b c d a b c d
|
||||||
|
|
||||||
|
|<-------->|
|
||||||
|
one step
|
||||||
|
|
||||||
|
|
||||||
|
For more information, please see
|
||||||
|
http://en.wikipedia.org/wiki/Rotary_encoder
|
||||||
|
|
||||||
|
|
||||||
|
1. Events / state machine
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
a) Rising edge on channel A, channel B in low state
|
||||||
|
This state is used to recognize a clockwise turn
|
||||||
|
|
||||||
|
b) Rising edge on channel B, channel A in high state
|
||||||
|
When entering this state, the encoder is put into 'armed' state,
|
||||||
|
meaning that there it has seen half the way of a one-step transition.
|
||||||
|
|
||||||
|
c) Falling edge on channel A, channel B in high state
|
||||||
|
This state is used to recognize a counter-clockwise turn
|
||||||
|
|
||||||
|
d) Falling edge on channel B, channel A in low state
|
||||||
|
Parking position. If the encoder enters this state, a full transition
|
||||||
|
should have happend, unless it flipped back on half the way. The
|
||||||
|
'armed' state tells us about that.
|
||||||
|
|
||||||
|
2. Platform requirements
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
As there is no hardware dependent call in this driver, the platform it is
|
||||||
|
used with must support gpiolib. Another requirement is that IRQs must be
|
||||||
|
able to fire on both edges.
|
||||||
|
|
||||||
|
|
||||||
|
3. Board integration
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
To use this driver in your system, register a platform_device with the
|
||||||
|
name 'rotary-encoder' and associate the IRQs and some specific platform
|
||||||
|
data with it.
|
||||||
|
|
||||||
|
struct rotary_encoder_platform_data is declared in
|
||||||
|
include/linux/rotary-encoder.h and needs to be filled with the number of
|
||||||
|
steps the encoder has and can carry information about externally inverted
|
||||||
|
signals (because of used invertig buffer or other reasons).
|
||||||
|
|
||||||
|
Because GPIO to IRQ mapping is platform specific, this information must
|
||||||
|
be given in seperately to the driver. See the example below.
|
||||||
|
|
||||||
|
---------<snip>---------
|
||||||
|
|
||||||
|
/* board support file example */
|
||||||
|
|
||||||
|
#include <linux/input.h>
|
||||||
|
#include <linux/rotary_encoder.h>
|
||||||
|
|
||||||
|
#define GPIO_ROTARY_A 1
|
||||||
|
#define GPIO_ROTARY_B 2
|
||||||
|
|
||||||
|
static struct rotary_encoder_platform_data my_rotary_encoder_info = {
|
||||||
|
.steps = 24,
|
||||||
|
.axis = ABS_X,
|
||||||
|
.gpio_a = GPIO_ROTARY_A,
|
||||||
|
.gpio_b = GPIO_ROTARY_B,
|
||||||
|
.inverted_a = 0,
|
||||||
|
.inverted_b = 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device rotary_encoder_device = {
|
||||||
|
.name = "rotary-encoder",
|
||||||
|
.id = 0,
|
||||||
|
.dev = {
|
||||||
|
.platform_data = &my_rotary_encoder_info,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
@@ -40,10 +40,16 @@ This document describes the Linux kernel Makefiles.
|
|||||||
--- 6.7 Custom kbuild commands
|
--- 6.7 Custom kbuild commands
|
||||||
--- 6.8 Preprocessing linker scripts
|
--- 6.8 Preprocessing linker scripts
|
||||||
|
|
||||||
=== 7 Kbuild Variables
|
=== 7 Kbuild syntax for exported headers
|
||||||
=== 8 Makefile language
|
--- 7.1 header-y
|
||||||
=== 9 Credits
|
--- 7.2 objhdr-y
|
||||||
=== 10 TODO
|
--- 7.3 destination-y
|
||||||
|
--- 7.4 unifdef-y (deprecated)
|
||||||
|
|
||||||
|
=== 8 Kbuild Variables
|
||||||
|
=== 9 Makefile language
|
||||||
|
=== 10 Credits
|
||||||
|
=== 11 TODO
|
||||||
|
|
||||||
=== 1 Overview
|
=== 1 Overview
|
||||||
|
|
||||||
@@ -310,6 +316,16 @@ more details, with real examples.
|
|||||||
#arch/m68k/fpsp040/Makefile
|
#arch/m68k/fpsp040/Makefile
|
||||||
ldflags-y := -x
|
ldflags-y := -x
|
||||||
|
|
||||||
|
subdir-ccflags-y, subdir-asflags-y
|
||||||
|
The two flags listed above are similar to ccflags-y and as-falgs-y.
|
||||||
|
The difference is that the subdir- variants has effect for the kbuild
|
||||||
|
file where tey are present and all subdirectories.
|
||||||
|
Options specified using subdir-* are added to the commandline before
|
||||||
|
the options specified using the non-subdir variants.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
subdir-ccflags-y := -Werror
|
||||||
|
|
||||||
CFLAGS_$@, AFLAGS_$@
|
CFLAGS_$@, AFLAGS_$@
|
||||||
|
|
||||||
CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
|
CFLAGS_$@ and AFLAGS_$@ only apply to commands in current
|
||||||
@@ -1143,8 +1159,69 @@ When kbuild executes, the following steps are followed (roughly):
|
|||||||
The kbuild infrastructure for *lds file are used in several
|
The kbuild infrastructure for *lds file are used in several
|
||||||
architecture-specific files.
|
architecture-specific files.
|
||||||
|
|
||||||
|
=== 7 Kbuild syntax for exported headers
|
||||||
|
|
||||||
=== 7 Kbuild Variables
|
The kernel include a set of headers that is exported to userspace.
|
||||||
|
Many headers can be exported as-is but other headers requires a
|
||||||
|
minimal pre-processing before they are ready for user-space.
|
||||||
|
The pre-processing does:
|
||||||
|
- drop kernel specific annotations
|
||||||
|
- drop include of compiler.h
|
||||||
|
- drop all sections that is kernel internat (guarded by ifdef __KERNEL__)
|
||||||
|
|
||||||
|
Each relevant directory contain a file name "Kbuild" which specify the
|
||||||
|
headers to be exported.
|
||||||
|
See subsequent chapter for the syntax of the Kbuild file.
|
||||||
|
|
||||||
|
--- 7.1 header-y
|
||||||
|
|
||||||
|
header-y specify header files to be exported.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
#include/linux/Kbuild
|
||||||
|
header-y += usb/
|
||||||
|
header-y += aio_abi.h
|
||||||
|
|
||||||
|
The convention is to list one file per line and
|
||||||
|
preferably in alphabetic order.
|
||||||
|
|
||||||
|
header-y also specify which subdirectories to visit.
|
||||||
|
A subdirectory is identified by a trailing '/' which
|
||||||
|
can be seen in the example above for the usb subdirectory.
|
||||||
|
|
||||||
|
Subdirectories are visited before their parent directories.
|
||||||
|
|
||||||
|
--- 7.2 objhdr-y
|
||||||
|
|
||||||
|
objhdr-y specifies generated files to be exported.
|
||||||
|
Generated files are special as they need to be looked
|
||||||
|
up in another directory when doing 'make O=...' builds.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
#include/linux/Kbuild
|
||||||
|
objhdr-y += version.h
|
||||||
|
|
||||||
|
--- 7.3 destination-y
|
||||||
|
|
||||||
|
When an architecture have a set of exported headers that needs to be
|
||||||
|
exported to a different directory destination-y is used.
|
||||||
|
destination-y specify the destination directory for all exported
|
||||||
|
headers in the file where it is present.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
#arch/xtensa/platforms/s6105/include/platform/Kbuild
|
||||||
|
destination-y := include/linux
|
||||||
|
|
||||||
|
In the example above all exported headers in the Kbuild file
|
||||||
|
will be located in the directory "include/linux" when exported.
|
||||||
|
|
||||||
|
|
||||||
|
--- 7.4 unifdef-y (deprecated)
|
||||||
|
|
||||||
|
unifdef-y is deprecated. A direct replacement is header-y.
|
||||||
|
|
||||||
|
|
||||||
|
=== 8 Kbuild Variables
|
||||||
|
|
||||||
The top Makefile exports the following variables:
|
The top Makefile exports the following variables:
|
||||||
|
|
||||||
@@ -1206,7 +1283,7 @@ The top Makefile exports the following variables:
|
|||||||
INSTALL_MOD_STRIP will used as the option(s) to the strip command.
|
INSTALL_MOD_STRIP will used as the option(s) to the strip command.
|
||||||
|
|
||||||
|
|
||||||
=== 8 Makefile language
|
=== 9 Makefile language
|
||||||
|
|
||||||
The kernel Makefiles are designed to be run with GNU Make. The Makefiles
|
The kernel Makefiles are designed to be run with GNU Make. The Makefiles
|
||||||
use only the documented features of GNU Make, but they do use many
|
use only the documented features of GNU Make, but they do use many
|
||||||
@@ -1225,14 +1302,14 @@ time the left-hand side is used.
|
|||||||
There are some cases where "=" is appropriate. Usually, though, ":="
|
There are some cases where "=" is appropriate. Usually, though, ":="
|
||||||
is the right choice.
|
is the right choice.
|
||||||
|
|
||||||
=== 9 Credits
|
=== 10 Credits
|
||||||
|
|
||||||
Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
|
Original version made by Michael Elizabeth Chastain, <mailto:mec@shout.net>
|
||||||
Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
|
Updates by Kai Germaschewski <kai@tp1.ruhr-uni-bochum.de>
|
||||||
Updates by Sam Ravnborg <sam@ravnborg.org>
|
Updates by Sam Ravnborg <sam@ravnborg.org>
|
||||||
Language QA by Jan Engelhardt <jengelh@gmx.de>
|
Language QA by Jan Engelhardt <jengelh@gmx.de>
|
||||||
|
|
||||||
=== 10 TODO
|
=== 11 TODO
|
||||||
|
|
||||||
- Describe how kbuild supports shipped files with _shipped.
|
- Describe how kbuild supports shipped files with _shipped.
|
||||||
- Generating offset header files.
|
- Generating offset header files.
|
||||||
|
|||||||
@@ -231,6 +231,35 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
power state again in power transition.
|
power state again in power transition.
|
||||||
1 : disable the power state check
|
1 : disable the power state check
|
||||||
|
|
||||||
|
acpi_sci= [HW,ACPI] ACPI System Control Interrupt trigger mode
|
||||||
|
Format: { level | edge | high | low }
|
||||||
|
|
||||||
|
acpi_serialize [HW,ACPI] force serialization of AML methods
|
||||||
|
|
||||||
|
acpi_skip_timer_override [HW,ACPI]
|
||||||
|
Recognize and ignore IRQ0/pin2 Interrupt Override.
|
||||||
|
For broken nForce2 BIOS resulting in XT-PIC timer.
|
||||||
|
|
||||||
|
acpi_sleep= [HW,ACPI] Sleep options
|
||||||
|
Format: { s3_bios, s3_mode, s3_beep, s4_nohwsig,
|
||||||
|
old_ordering, s4_nonvs }
|
||||||
|
See Documentation/power/video.txt for information on
|
||||||
|
s3_bios and s3_mode.
|
||||||
|
s3_beep is for debugging; it makes the PC's speaker beep
|
||||||
|
as soon as the kernel's real-mode entry point is called.
|
||||||
|
s4_nohwsig prevents ACPI hardware signature from being
|
||||||
|
used during resume from hibernation.
|
||||||
|
old_ordering causes the ACPI 1.0 ordering of the _PTS
|
||||||
|
control method, with respect to putting devices into
|
||||||
|
low power states, to be enforced (the ACPI 2.0 ordering
|
||||||
|
of _PTS is used by default).
|
||||||
|
s4_nonvs prevents the kernel from saving/restoring the
|
||||||
|
ACPI NVS memory during hibernation.
|
||||||
|
|
||||||
|
acpi_use_timer_override [HW,ACPI]
|
||||||
|
Use timer override. For some broken Nvidia NF5 boards
|
||||||
|
that require a timer override, but don't have HPET
|
||||||
|
|
||||||
acpi_enforce_resources= [ACPI]
|
acpi_enforce_resources= [ACPI]
|
||||||
{ strict | lax | no }
|
{ strict | lax | no }
|
||||||
Check for resource conflicts between native drivers
|
Check for resource conflicts between native drivers
|
||||||
@@ -250,6 +279,9 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
ad1848= [HW,OSS]
|
ad1848= [HW,OSS]
|
||||||
Format: <io>,<irq>,<dma>,<dma2>,<type>
|
Format: <io>,<irq>,<dma>,<dma2>,<type>
|
||||||
|
|
||||||
|
add_efi_memmap [EFI; X86] Include EFI memory map in
|
||||||
|
kernel's map of available physical RAM.
|
||||||
|
|
||||||
advansys= [HW,SCSI]
|
advansys= [HW,SCSI]
|
||||||
See header of drivers/scsi/advansys.c.
|
See header of drivers/scsi/advansys.c.
|
||||||
|
|
||||||
@@ -1840,6 +1872,12 @@ and is between 256 and 4096 characters. It is defined in the file
|
|||||||
autoconfiguration.
|
autoconfiguration.
|
||||||
Ranges are in pairs (memory base and size).
|
Ranges are in pairs (memory base and size).
|
||||||
|
|
||||||
|
ports= [IP_VS_FTP] IPVS ftp helper module
|
||||||
|
Default is 21.
|
||||||
|
Up to 8 (IP_VS_APP_MAX_PORTS) ports
|
||||||
|
may be specified.
|
||||||
|
Format: <port>,<port>....
|
||||||
|
|
||||||
print-fatal-signals=
|
print-fatal-signals=
|
||||||
[KNL] debug: print fatal signals
|
[KNL] debug: print fatal signals
|
||||||
print-fatal-signals=1: print segfault info to
|
print-fatal-signals=1: print segfault info to
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
lguest
|
||||||
@@ -3,11 +3,11 @@
|
|||||||
/, /` - or, A Young Coder's Illustrated Hypervisor
|
/, /` - or, A Young Coder's Illustrated Hypervisor
|
||||||
\\"--\\ http://lguest.ozlabs.org
|
\\"--\\ http://lguest.ozlabs.org
|
||||||
|
|
||||||
Lguest is designed to be a minimal hypervisor for the Linux kernel, for
|
Lguest is designed to be a minimal 32-bit x86 hypervisor for the Linux kernel,
|
||||||
Linux developers and users to experiment with virtualization with the
|
for Linux developers and users to experiment with virtualization with the
|
||||||
minimum of complexity. Nonetheless, it should have sufficient
|
minimum of complexity. Nonetheless, it should have sufficient features to
|
||||||
features to make it useful for specific tasks, and, of course, you are
|
make it useful for specific tasks, and, of course, you are encouraged to fork
|
||||||
encouraged to fork and enhance it (see drivers/lguest/README).
|
and enhance it (see drivers/lguest/README).
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
|
|
||||||
@@ -37,6 +37,7 @@ Running Lguest:
|
|||||||
"Paravirtualized guest support" = Y
|
"Paravirtualized guest support" = Y
|
||||||
"Lguest guest support" = Y
|
"Lguest guest support" = Y
|
||||||
"High Memory Support" = off/4GB
|
"High Memory Support" = off/4GB
|
||||||
|
"PAE (Physical Address Extension) Support" = N
|
||||||
"Alignment value to which kernel should be aligned" = 0x100000
|
"Alignment value to which kernel should be aligned" = 0x100000
|
||||||
(CONFIG_PARAVIRT=y, CONFIG_LGUEST_GUEST=y, CONFIG_HIGHMEM64G=n and
|
(CONFIG_PARAVIRT=y, CONFIG_LGUEST_GUEST=y, CONFIG_HIGHMEM64G=n and
|
||||||
CONFIG_PHYSICAL_ALIGN=0x100000)
|
CONFIG_PHYSICAL_ALIGN=0x100000)
|
||||||
|
|||||||
@@ -1242,7 +1242,7 @@ monitoring is enabled, and vice-versa.
|
|||||||
To add ARP targets:
|
To add ARP targets:
|
||||||
# echo +192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
|
# echo +192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
|
||||||
# echo +192.168.0.101 > /sys/class/net/bond0/bonding/arp_ip_target
|
# echo +192.168.0.101 > /sys/class/net/bond0/bonding/arp_ip_target
|
||||||
NOTE: up to 10 target addresses may be specified.
|
NOTE: up to 16 target addresses may be specified.
|
||||||
|
|
||||||
To remove an ARP target:
|
To remove an ARP target:
|
||||||
# echo -192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
|
# echo -192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target
|
||||||
|
|||||||
@@ -7,8 +7,10 @@ Required properties :
|
|||||||
|
|
||||||
Recommended properties :
|
Recommended properties :
|
||||||
|
|
||||||
- compatible : Should be "fsl-i2c" for parts compatible with
|
- compatible : compatibility list with 2 entries, the first should
|
||||||
Freescale I2C specifications.
|
be "fsl,CHIP-i2c" where CHIP is the name of a compatible processor,
|
||||||
|
e.g. mpc8313, mpc8543, mpc8544, mpc5200 or mpc5200b. The second one
|
||||||
|
should be "fsl-i2c".
|
||||||
- interrupts : <a b> where a is the interrupt number and b is a
|
- interrupts : <a b> where a is the interrupt number and b is a
|
||||||
field that represents an encoding of the sense and level
|
field that represents an encoding of the sense and level
|
||||||
information for the interrupt. This should be encoded based on
|
information for the interrupt. This should be encoded based on
|
||||||
@@ -16,17 +18,31 @@ Recommended properties :
|
|||||||
controller you have.
|
controller you have.
|
||||||
- interrupt-parent : the phandle for the interrupt controller that
|
- interrupt-parent : the phandle for the interrupt controller that
|
||||||
services interrupts for this device.
|
services interrupts for this device.
|
||||||
- dfsrr : boolean; if defined, indicates that this I2C device has
|
- fsl,preserve-clocking : boolean; if defined, the clock settings
|
||||||
a digital filter sampling rate register
|
from the bootloader are preserved (not touched).
|
||||||
- fsl5200-clocking : boolean; if defined, indicated that this device
|
- clock-frequency : desired I2C bus clock frequency in Hz.
|
||||||
uses the FSL 5200 clocking mechanism.
|
|
||||||
|
|
||||||
Example :
|
Examples :
|
||||||
i2c@3000 {
|
|
||||||
interrupt-parent = <40000>;
|
i2c@3d00 {
|
||||||
interrupts = <1b 3>;
|
#address-cells = <1>;
|
||||||
reg = <3000 18>;
|
#size-cells = <0>;
|
||||||
device_type = "i2c";
|
compatible = "fsl,mpc5200b-i2c","fsl,mpc5200-i2c","fsl-i2c";
|
||||||
compatible = "fsl-i2c";
|
cell-index = <0>;
|
||||||
dfsrr;
|
reg = <0x3d00 0x40>;
|
||||||
|
interrupts = <2 15 0>;
|
||||||
|
interrupt-parent = <&mpc5200_pic>;
|
||||||
|
fsl,preserve-clocking;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
i2c@3100 {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <0>;
|
||||||
|
cell-index = <1>;
|
||||||
|
compatible = "fsl,mpc8544-i2c", "fsl-i2c";
|
||||||
|
reg = <0x3100 0x100>;
|
||||||
|
interrupts = <43 2>;
|
||||||
|
interrupt-parent = <&mpic>;
|
||||||
|
clock-frequency = <400000>;
|
||||||
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ PCI SSID look-up.
|
|||||||
What `model` option values are available depends on the codec chip.
|
What `model` option values are available depends on the codec chip.
|
||||||
Check your codec chip from the codec proc file (see "Codec Proc-File"
|
Check your codec chip from the codec proc file (see "Codec Proc-File"
|
||||||
section below). It will show the vendor/product name of your codec
|
section below). It will show the vendor/product name of your codec
|
||||||
chip. Then, see Documentation/sound/alsa/HD-Audio-Modelstxt file,
|
chip. Then, see Documentation/sound/alsa/HD-Audio-Models.txt file,
|
||||||
the section of HD-audio driver. You can find a list of codecs
|
the section of HD-audio driver. You can find a list of codecs
|
||||||
and `model` options belonging to each codec. For example, for Realtek
|
and `model` options belonging to each codec. For example, for Realtek
|
||||||
ALC262 codec chip, pass `model=ultra` for devices that are compatible
|
ALC262 codec chip, pass `model=ultra` for devices that are compatible
|
||||||
@@ -177,7 +177,7 @@ with Samsung Q1 Ultra.
|
|||||||
|
|
||||||
Thus, the first thing you can do for any brand-new, unsupported and
|
Thus, the first thing you can do for any brand-new, unsupported and
|
||||||
non-working HD-audio hardware is to check HD-audio codec and several
|
non-working HD-audio hardware is to check HD-audio codec and several
|
||||||
different `model` option values. If you have a luck, some of them
|
different `model` option values. If you have any luck, some of them
|
||||||
might suit with your device well.
|
might suit with your device well.
|
||||||
|
|
||||||
Some codecs such as ALC880 have a special model option `model=test`.
|
Some codecs such as ALC880 have a special model option `model=test`.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user