- 08 4月, 2014 4 次提交
-
-
由 Sergey Senozhatsky 提交于
Remove `good' and `bad' compressed sub-requests stats. RW request may cause a number of RW sub-requests. zram used to account `good' compressed sub-queries (with compressed size less than 50% of original size), `bad' compressed sub-queries (with compressed size greater that 75% of original size), leaving sub-requests with compression size between 50% and 75% of original size not accounted and not reported. zram already accounts each sub-request's compression size so we can calculate real device compression ratio. Signed-off-by: NSergey Senozhatsky <sergey.senozhatsky@gmail.com> Acked-by: NMinchan Kim <minchan@kernel.org> Acked-by: NJerome Marchand <jmarchan@redhat.com> Cc: Nitin Gupta <ngupta@vflare.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Sergey Senozhatsky 提交于
Do not pass rw argument down the __zram_make_request() -> zram_bvec_rw() chain, decode it in zram_bvec_rw() instead. Besides, this is the place where we distinguish READ and WRITE bio data directions, so account zram RW stats here, instead of __zram_make_request(). This also allows to account a real number of zram READ/WRITE operations, not just requests (single RW request may cause a number of zram RW ops with separate locking, compression/decompression, etc). Signed-off-by: NSergey Senozhatsky <sergey.senozhatsky@gmail.com> Acked-by: NMinchan Kim <minchan@kernel.org> Acked-by: NJerome Marchand <jmarchan@redhat.com> Cc: Nitin Gupta <ngupta@vflare.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Sergey Senozhatsky 提交于
Introduce init_done() helper function which allows us to drop `init_done' struct zram member. init_done() uses the fact that ->init_done == 1 equals to ->meta != NULL. Signed-off-by: NSergey Senozhatsky <sergey.senozhatsky@gmail.com> Acked-by: NMinchan Kim <minchan@kernel.org> Acked-by: NJerome Marchand <jmarchan@redhat.com> Cc: Nitin Gupta <ngupta@vflare.org> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
由 Andrew Morton 提交于
"mm: introduce vm_ops->map_pages()" wants to export a do_set_pte() from core kernel. Rename lguest's do_set_pte() to something more lguest-specific. Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> Cc: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: NAndrew Morton <akpm@linux-foundation.org> Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
-
- 05 4月, 2014 18 次提交
-
-
由 Joe Thornber 提交于
When suspending a cache the policy is walked and the individual policy hints written to the metadata via sync_metadata(). This led to this lock order: policy->lock cache_metadata->root_lock When loading the cache target the policy is populated while the metadata lock is held: cache_metadata->root_lock policy->lock Fix this potential lock-inversion (ABBA) deadlock in sync_metadata() by ensuring the cache_metadata root_lock is held whilst all the hints are written, rather than being repeatedly locked while policy->lock is held (as was the case with each callout that policy_walk_mappings() made to the old save_hint() method). Found by turning on the CONFIG_PROVE_LOCKING ("Lock debugging: prove locking correctness") build option. However, it is not clear how the LOCKDEP reported paths can lead to a deadlock since the two paths, suspending a target and loading a target, never occur at the same time. But that doesn't mean the same lock-inversion couldn't have occurred elsewhere. Reported-by: NMarian Csontos <mcsontos@redhat.com> Signed-off-by: NJoe Thornber <ejt@redhat.com> Signed-off-by: NMike Snitzer <snitzer@redhat.com> Cc: stable@vger.kernel.org
-
由 Mike Snitzer 提交于
A thin-pool will allocate blocks using FIFO order for all thin devices which share the thin-pool. Because of this simplistic allocation the thin-pool's space can become fragmented quite easily; especially when multiple threads are requesting blocks in parallel. Sort each thin device's deferred_bio_list based on logical sector to help reduce fragmentation of the thin-pool's ondisk layout. The following tables illustrate the realized gains/potential offered by sorting each thin device's deferred_bio_list. An "io size"-sized random read of the device would result in "seeks/io" fragments being read, with an average "distance/seek" between each fragment. Data was written to a single thin device using multiple threads via iozone (8 threads, 64K for both the block_size and io_size). unsorted: io size seeks/io distance/seek -------------------------------------- 4k 0.000 0b 16k 0.013 11m 64k 0.065 11m 256k 0.274 10m 1m 1.109 10m 4m 4.411 10m 16m 17.097 11m 64m 60.055 13m 256m 148.798 25m 1g 809.929 21m sorted: io size seeks/io distance/seek -------------------------------------- 4k 0.000 0b 16k 0.000 1g 64k 0.001 1g 256k 0.003 1g 1m 0.011 1g 4m 0.045 1g 16m 0.181 1g 64m 0.747 1011m 256m 3.299 1g 1g 14.373 1g Signed-off-by: NMike Snitzer <snitzer@redhat.com> Acked-by: NJoe Thornber <ejt@redhat.com>
-
由 Rudolf Marek 提交于
Add support for the IT8623E found on Asus motherboards. It has same hardware monitoring block as IT8603E. Signed-off-by: NRudolf Marek <r.marek@assembler.cz> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Rudolf Marek 提交于
Fix small typo in the define name for IT8603E. Signed-off-by: NRudolf Marek <r.marek@assembler.cz> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Guenter Roeck 提交于
Simplify code, reduce code size, and attach hwmon attributes to hwmon device. Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Guenter Roeck 提交于
Create all sysfs groups in one call by using sysfs_create_groups instead of calling sysfs_create_group individually for each group. Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Guenter Roeck 提交于
Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Guenter Roeck 提交于
With the new hwmon API, all attributes have to be created as groups. Use sysfs_create_group and sysfs_remove_group instead of device_create_file and device_remove_file to prepare for the new API. Exception is the 'pec' attribute which will stay with the i2c device. Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Jean Delvare 提交于
All hwmon drivers allocate their data structure with some form of kzalloc, so setting data fields to zero explicitly is a waste of time. Signed-off-by: NJean Delvare <jdelvare@suse.de> Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Jean Delvare 提交于
data is kzalloc'd, so data->valid, data->innr and data->tempnr are already 0. Also rework the initialization path to only set name and data->fannr once. Signed-off-by: NJean Delvare <jdelvare@suse.de> Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Simplify code, reduce code size, and attach hwmon attributes to hwmon device. Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Guenter Roeck 提交于
Simplify code, reduce code size, and attach hwmon attributes to hwmon device. Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Jean Delvare 提交于
data is kzalloc'd, so data->valid is already 0. Signed-off-by: NJean Delvare <jdelvare@suse.de> Reviewed-by: NGuenter Roeck <linux@roeck-us.net>
-
由 Guenter Roeck 提交于
Simplify code, reduce code size, attach hwmon attributes to hwmon device. Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Guenter Roeck 提交于
We can create all sysfs groups in one call by using sysfs_create_groups instead of using sysfs_create_group individually for each group. Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Guenter Roeck 提交于
client->dev is used multiple times in several functions. Introduce dev variable pointing to it to simplify the code. Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Guenter Roeck 提交于
With the new hwmon API, we can only add groups of attributes, not individual attributes. To prepare for the use of the new API, add an additional sensor group for the temp2_type attribute and register it with sysfs_create_group instead of device_create_file. Signed-off-by: NGuenter Roeck <linux@roeck-us.net> Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
由 Jean Delvare 提交于
The original address was incomplete, and this caused it to be missed by the recent update to my new address. Signed-off-by: NJean Delvare <jdelvare@suse.de>
-
- 04 4月, 2014 18 次提交
-
-
由 Russell King 提交于
We can move the handling of the DMA synchronisation control out of the prepare functions; this can be pre-calculated when the DMA channel has been allocated, so we don't need to duplicate this in both prepare functions. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Move the interrupt handling for OMAP2+ into omap-dma, rather than using the legacy support in the platform code. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Export the DMA register information from the SoC specific data, such that we can access the registers directly in omap-dma.c, mapping the register region ourselves as well. Rather than calculating the DMA channel register in its entirety for each access, we pre-calculate an offset base address for the allocated DMA channel and then just use the appropriate register offset. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Provide a function to read the CSAC/CDAC register, working around the OMAP 3.2/3.3 erratum (which requires two reads of the register if the first returned zero. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Provide a pair of channel register accessors, and a pair of global accessors for non-channel specific registers. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
We don't need to read-modify-write the CCR register; we already know what value it should contain at this point. Use the cached CCR value when setting the enable bit. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
We don't need to issue a barrier for every segment of a DMA transfer; doing this just once per descriptor will do. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Move the clnk_ctrl setup to the preparation functions, saving its value in the omap_desc. This only needs to be set once per descriptor, not for each segment, so set it in omap_dma_start_desc() rather than omap_dma_start(). Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
The only thing which changes is which registers are written, so put this in local variables instead. This results in smaller code. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Consolidate clearing of the channel status register, rather than open coding the same functionality in two places. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Since we record the CCR register in the dma transaction, we can move the processing of the iframe buffering errata out of the omap_dma_start(). Move it to the preparation functions. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Provide our own set of more complete register definitions; this allows us to get rid of the meaningless 1 << n constants scattered throughout this code. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Consolidate the setup of the channel control register. Prepare the basic value in the preparation of the DMA descriptor, and write it into the register upon descriptor execution. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Consolidate the setup of the channel source destination parameters register. This way, we calculate the required CSDP value when we setup a transfer descriptor, and only write it to the device registers once when we start the descriptor. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Read the current DMA position from the hardware directly rather than via arch/arm/plat-omap/dma.c. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Program the non-cyclic mode DMA start/stop directly, rather than via arch/arm/plat-omap/dma.c. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
There's no need to keep writing registers which don't change value in omap_dma_start_sg(). Move this into omap_dma_start_desc() and merge the register updates together. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-
由 Russell King 提交于
Program the transfer parameters directly into the hardware, rather than using the functions in arch/arm/plat-omap/dma.c. Acked-by: NTony Lindgren <tony@atomide.com> Acked-by: NVinod Koul <vinod.koul@intel.com> Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
-