于 2013年05月02日 13:42, Gupta, Pekon 写道:
- *busw = 0;
- if (le16_to_cpu(p->features)& 1)
- *busw = NAND_BUSWIDTH_16;
+
+ *busw = (onfi_feature(chip)& ONFI_FEATURE_16_BIT_BUS) ?
+ NAND_BUSWIDTH_16 : 0;
Is this really needed ? you have
Use devm_*() functions to make cleanup paths simpler.
Signed-off-by: Jingoo Han
---
Changes since v2:
- removed unnecessary platform_set_drvdata(pdev, NULL)
drivers/watchdog/ts72xx_wdt.c | 67 ++--
1 files changed, 10 insertions(+), 57 deletions(-)
diff
Use devm_kzalloc() to make cleanup paths simpler.
Signed-off-by: Jingoo Han
---
drivers/watchdog/riowd.c |8 ++--
1 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/drivers/watchdog/riowd.c b/drivers/watchdog/riowd.c
index 0040451..13363ad 100644
---
Use devm_ioremap_nocache() functions to make cleanup paths simpler.
Signed-off-by: Jingoo Han
---
drivers/watchdog/rc32434_wdt.c | 10 +++---
1 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/drivers/watchdog/rc32434_wdt.c b/drivers/watchdog/rc32434_wdt.c
index
Use devm_*() functions to make cleanup paths simpler.
Signed-off-by: Jingoo Han
---
drivers/watchdog/nuc900_wdt.c | 50 +
1 files changed, 11 insertions(+), 39 deletions(-)
diff --git a/drivers/watchdog/nuc900_wdt.c b/drivers/watchdog/nuc900_wdt.c
Use devm_ioremap() to make cleanup paths simpler.
Signed-off-by: Jingoo Han
---
drivers/watchdog/mv64x60_wdt.c |4 +---
1 files changed, 1 insertions(+), 3 deletions(-)
diff --git a/drivers/watchdog/mv64x60_wdt.c b/drivers/watchdog/mv64x60_wdt.c
index c7fb878..e4cf980 100644
---
Use devm_ioremap_nocache() to make cleanup paths simpler.
Signed-off-by: Jingoo Han
---
drivers/watchdog/bcm63xx_wdt.c |9 -
1 files changed, 4 insertions(+), 5 deletions(-)
diff --git a/drivers/watchdog/bcm63xx_wdt.c b/drivers/watchdog/bcm63xx_wdt.c
index b2b80d4..a14a58d 100644
Use devm_*() functions to make cleanup paths simpler.
Signed-off-by: Jingoo Han
---
drivers/watchdog/at32ap700x_wdt.c | 12
1 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/watchdog/at32ap700x_wdt.c
b/drivers/watchdog/at32ap700x_wdt.c
index 7a715e3..c4cb552
On 04/22/2013 06:23 PM, Peter Zijlstra wrote:
>
> OK,.. Ingo said that pipe-test was the original motivation for
> wake_affine() and since that's currently broken to pieces due to
> select_idle_sibling() is there still a benefit to having it at all?
>
> Can anybody find any significant
From: Lad, Prabhakar
This patch enables tvp7002 decoder driver for media controller
based usage by adding v4l2_subdev_pad_ops operations support
for enum_mbus_code, set_pad_format, get_pad_format and media_entity_init()
on probe and media_entity_cleanup() on remove.
Signed-off-by: Lad,
Mikael Pettersson writes:
> You're looking at the wrong header: glibc-2.17/sysdeps/i386/sys/ucontext.h is
> legacy SVR4.
> Instead look at glibc-2.17/sysdeps/unix/sysv/linux/x86/sys/ucontext.h.
>
> (If the old one got installed on your system then something there is
> seriously wrong.)
Oh-oh:
> >> - *busw = 0;
> >> - if (le16_to_cpu(p->features)& 1)
> >> - *busw = NAND_BUSWIDTH_16;
> >> +
> >> + *busw = (onfi_feature(chip)& ONFI_FEATURE_16_BIT_BUS) ?
> >> + NAND_BUSWIDTH_16 : 0;
> > Is this really needed ? you have already checked the 'onfi_version'
>
TMU probe function now checks for a device tree defined regulator.
For compatibility reasons it is allowed to probe driver even without
this regulator defined.
Signed-off-by: Lukasz Majewski
Signed-off-by: Kyungmin Park
Signed-off-by: Amit Daniel Kachhap
---
This patch is repost of the patch
Hi Rusty,
On Thu, 2 May 2013 13:37:37 +1000 Stephen Rothwell
wrote:
>
> This is the merge fix patch I have been carrying in linux-next since
> March 14: (this probably does not quite apply any more but, hey ...)
>
> From: Stephen Rothwell
> Date: Thu, 14 Mar 2013 17:14:41 +1100
> Subject:
From: Linus Torvalds
Date: Wed, 1 May 2013 18:28:38 -0700
> On Wed, May 1, 2013 at 1:47 PM, David Miller wrote:
>>
>> Highlights (1721 non-merge commits, this has to be a record of some
>> sort):
>
> Lowlight: it completely breaks my machine with r8169 ethernet. In the
> networkmanager
Namjae Jeon writes:
Hm, why d_count == 1 check is needed? Feel strange and racy.
>>> Since, fat_file_release() is called on every close for the file.
>>
>> What is wrong? IIRC, it is what you choose (i.e. for each last close for
>> the file descriptor).
> Yes, this is what we had chosen
On Wed, May 1, 2013 at 9:37 PM, Linus Torvalds
wrote:
>
> I don't see what could be broken in that commit, and I'd *like* to
> just revert it on top of current -git, but that causes problems
> ("error: ‘NETIF_F_HW_VLAN_STAG_TX_BIT’ undeclared"), so I can't just
> do a straight revert to
2013/5/1, OGAWA Hirofumi :
> Namjae Jeon writes:
>
>> Hi OGAWA.
>
> Hi,
>
>>> I couldn't review fully though.
>>>
+ if (mmu_private_ideal < MSDOS_I(inode)->mmu_private &&
+ filp->f_dentry->d_count == 1)
+ fat_truncate_blocks(inode, inode->i_size);
>>>
>>> Hm, why
On Thu, May 02, 2013 at 04:45:30AM +0300, Michael S. Tsirkin wrote:
> This reorgs the files a bit, renaming tcm_vhost to
> vhost_scsi as that's how userspace refers to it.
> While at it, cleanup some leftovers from when it was a
> staging driver.
>
> Signed-off-by: Michael S. Tsirkin
On Mon, Apr 29, 2013 at 3:08 PM, Pierre-Loup A. Griffais
wrote:
> On 04/29/2013 03:03 PM, Linus Torvalds wrote:
>>
>> On Mon, Apr 29, 2013 at 2:53 PM, Pierre-Loup A. Griffais
>> wrote:
>>>
>>>
>>> Other than this particular concern, what's the high-level take-away? Is
>>> PAE
>>> support in the
On Wed, May 1, 2013 at 6:28 PM, Linus Torvalds
wrote:
>
> Lowlight: it completely breaks my machine with r8169 ethernet. In the
> networkmanager applet, it claims no cable connection, which is a bit
> odd, because (a) it works with an older kernel and (b) the kernel
> messages actually say
>
>
On 4/29/13 4:56 PM, Serge E. Hallyn wrote:
Quoting s...@shealevy.com (s...@shealevy.com):
Hi All,
I just hit the following error trying to build 3.8.9:
/nix/store/vkvwpn6f7iff6zqrq2d9z2a1945pcsza-linux-3.8.9-source/kernel/user_namespace.c:
In function 'map_write':
On Wed, May 01, 2013 at 10:43:35PM +0100, Al Viro wrote:
> Oh, hell... Guys, my deep apologies - what happened is that this thing
> has been caught in -next, rebase done here (on top of Rusty's commit)
> and *not* pushed to linux-next.
Curiouser and curiouser... FWIW, what I have is
$ cat
On Thu, May 02, 2013 at 12:13:47AM +0100, Russell King - ARM Linux wrote:
> On Wed, May 01, 2013 at 12:06:40PM -0500, Robin Holt wrote:
> > Andrew, Please do _NOT_ take this patch series yet. I am sending this
> > to you because you had comments on my -v6 submission.
>
> Another reason for not
Hi all,
On Thu, 02 May 2013 09:58:08 +0930 Rusty Russell wrote:
>
> James Hogan writes:
> > Al's commit e1b5bb6d1236d4ad2084c53aa83dde7cdf6f8eea ("consolidate
> > cond_syscall and SYSCALL_ALIAS declarations") broke the build on
> > blackfin and metag due to the following code:
> >
> > #ifndef
Hi Dave,
On Thu, 4 Apr 2013 11:44:44 +1100 Stephen Rothwell
wrote:
>
> Today's linux-next merge of the net-next tree got a conflict in
> drivers/net/wireless/rt2x00/rt2x00pci.c between commit 69a2bac8984c
> ("rt2x00: rt2x00pci: fix build error on Ralink RT3x5x SoCs") from the
> wireless tree
On Tue, 2013-04-30 at 11:27 +0800, Herbert Xu wrote:
> On Mon, Apr 29, 2013 at 01:40:30PM -0700, Tim Chen wrote:
> >
> > If I allocate the transform under the mod init instead, how can I make
> > sure that the fast version is already registered if I have it compiled
> > in? It is not clear to me
This is the x86_64 CRC T10 DIF transform accelerated with the PCLMULQDQ
instructions. Details discussing the implementation can be found in the
paper:
"Fast CRC Computation for Generic Polynomials Using PCLMULQDQ Instruction"
These are simple tests to do sanity check of CRC T10 DIF hash. The
correctness of the transform can be checked with the command
modprobe tcrypt mode=47
The speed of the transform can be evaluated with the command
modprobe tcrypt mode=320
Set the cpu frequency to constant and turn
Currently the CRC-T10DIF checksum is computed using a generic table lookup
algorithm. By switching the checksum to PCLMULQDQ based computation,
we can speedup the computation by 8x for checksumming 512 bytes and
even more for larger buffer size. This will improve performance of SCSI
drivers
Glue code that plugs the PCLMULQDQ accelerated CRC T10 DIF hash into the
crypto framework. The config CRYPTO_CRCT10DIF_PCLMUL should be turned
on to enable the feature. The crc_t10dif crypto library function will
use this faster algorithm when crct10dif_pclmul module is loaded.
Signed-off-by:
When CRC T10 DIF is calculated using the crypto transform framework, we
wrap the crc_t10dif function call to utilize it. This allows us to
take advantage of any accelerated CRC T10 DIF transform that is
plugged into the crypto framework.
Signed-off-by: Tim Chen
---
crypto/Kconfig |
On Wed, May 01, 2013 at 10:34:43AM +0530, Viresh Kumar wrote:
> We are freeing parent node in success cases but not in failure cases. Lets do
> it.
>
> Signed-off-by: Viresh Kumar
> ---
> drivers/cpufreq/cpufreq-cpu0.c | 13 -
> 1 file changed, 8 insertions(+), 5 deletions(-)
>
>
On Wed, 1 May 2013 21:34:26 -0400
Steven Rostedt wrote:
> On Mon, Apr 29, 2013 at 08:48:17PM -0400, Rik van Riel wrote:
> >
> > It could also print out a friendly message, to
> > inform the user they should upgrade to a 64 bit
> > kernel to enjoy the use of all of their memory.
>
> Oh, oh,
On Mon, Apr 29, 2013 at 04:07:18PM +0200, Maxime Ripard wrote:
> The current driver doesn't use the set and clear registers found on the
> mxs gpio controller.
>
> This leads the generic gpio controller to be using some internal value
> to avoid looking up the value stored in the registers,
On Mon, Apr 29, 2013 at 03:58:37PM +0200, Maxime Ripard wrote:
> MXS, unlike other ARM platforms,
How are other ARM platforms handling that?
> has no way to make a FIQ from an
> interrupt from a driver, without poking directly into the icoll.
>
> Add an exported function to do this.
>
>
Hi, Joachim,
> -Original Message-
> From: Joachim Eastwood [mailto:manab...@gmail.com]
> Sent: 2013年3月7日 20:31
> To: Yang, Wenyou
> Cc: linux-arm-ker...@lists.infradead.org; grant.lik...@secretlab.ca; Ferre,
> Nicolas; plagn...@jcrosoft.com; richard.gen...@gmail.com; Lin, JM;
>
The only reason uaccess routines might sleep
is if they fault. Make this explicit for
__copy_from_user_nocache, and consistent with
copy_from_user and friends.
Signed-off-by: Michael S. Tsirkin
---
I've updated all other arches as well - still
build-testing. Any objections to the x86 patch?
On Thu, May 02, 2013 at 12:13:47AM +0100, Russell King - ARM Linux wrote:
> On Wed, May 01, 2013 at 12:06:40PM -0500, Robin Holt wrote:
> > Andrew, Please do _NOT_ take this patch series yet. I am sending this
> > to you because you had comments on my -v6 submission.
>
> Another reason for not
于 2013年04月30日 18:04, Gupta, Pekon 写道:
- *busw = 0;
- if (le16_to_cpu(p->features)& 1)
- *busw = NAND_BUSWIDTH_16;
+
+ *busw = (onfi_feature(chip)& ONFI_FEATURE_16_BIT_BUS) ?
+ NAND_BUSWIDTH_16 : 0;
Is this really needed ? you have already
On Thu, 2013-05-02 at 04:45 +0300, Michael S. Tsirkin wrote:
> This reorgs the files a bit, renaming tcm_vhost to
> vhost_scsi as that's how userspace refers to it.
> While at it, cleanup some leftovers from when it was a
> staging driver.
>
> Signed-off-by: Michael S. Tsirkin
>
>
Acked-by:
Hi Al,
Today's linux-next merge of the vfs tree got a conflict in fs/coredump.c
between commit acdedd99b0f3 ("coredump: sanitize the setting of
signal->group_exit_code") from Linus' tree and commit 03d95eb2f257 ("lift
sb_start_write() out of ->write()") from the vfs tree.
I fixed it up (see
Hi Al,
Today's linux-next merge of the vfs tree got a conflict in fs/compat.c
between commit 76b021d053ed ("convert vmsplice to COMPAT_SYSCALL_DEFINE")
from Linus' tree and commit 72ec35163f9f ("switch compat readv/writev
variants to COMPAT_SYSCALL_DEFINE") from the vfs tree.
I fixed it up (see
The git commite7a5cd063c7b4c58417f674821d63f5eb6747e37
("x86-64, gdt: Store/load GDT for ACPI S3 or hibernate/resume path
is not needed.") assumes that for the hibernate path the booting
kernel and the resuming kernel MUST be the same. That is certainly
the case for a 32-bit kernel (see
This patch is intended for v3.10 and it should be considered RFC as I had
only tested it under QEMU and not real hardware (that to be done on Friday).
The patch addresses a shortcomming of the git commite
7a5cd063c7b4c58417f674821d63f5eb6747e37 ("x86-64, gdt: Store/load GDT for
ACPI S3 or
James Hogan writes:
> Al's commit e1b5bb6d1236d4ad2084c53aa83dde7cdf6f8eea ("consolidate
> cond_syscall and SYSCALL_ALIAS declarations") broke the build on
> blackfin and metag due to the following code:
>
> #ifndef SYMBOL_NAME
> #ifdef CONFIG_SYMBOL_PREFIX
> #define SYMBOL_NAME(x)
Hi Linus:
Here is the crypto update for 3.10:
* XTS mode optimisation for twofish/cast6/camellia/aes on x86.
* AVX2/x86_64 implementation for blowfish/twofish/serpent/camellia.
* SSSE3/AVX/AVX2 optimisations for sha256/sha512.
* Added driver for SAHARA2 crypto accelerator.
* Fix for GMAC when
On Wed, May 01, 2013 at 03:05:48PM -0400, David Miller wrote:
> From: "Michael S. Tsirkin"
> Date: Wed, 1 May 2013 18:01:31 +0300
>
> > Please pull the following vhost core updates for 3.10 -
> > they affect both vhost-net and vhost-scsi devices.
> > They also *depend* on both net-next and
Rename module and update Kconfig and Makefile.
Add alias for compatibility with old userspace
scripts if any.
Signed-off-by: Michael S. Tsirkin
---
drivers/vhost/Kconfig | 10 +++---
drivers/vhost/Kconfig.tcm | 6 --
drivers/vhost/Makefile| 4 ++--
drivers/vhost/scsi.c |
Move tcm_vhost.c -> scsi.c
Signed-off-by: Michael S. Tsirkin
---
drivers/vhost/Makefile| 1 +
drivers/vhost/{tcm_vhost.c => scsi.c} | 0
2 files changed, 1 insertion(+)
rename drivers/vhost/{tcm_vhost.c => scsi.c} (100%)
diff --git a/drivers/vhost/Makefile
move uapi parts to vhost.h
move .c private parts to .c itself
Signed-off-by: Michael S. Tsirkin
---
drivers/vhost/scsi.c | 112 +++---
drivers/vhost/tcm_vhost.h | 131 -
include/uapi/linux/vhost.h | 28
This reorgs the files a bit, renaming tcm_vhost to
vhost_scsi as that's how userspace refers to it.
While at it, cleanup some leftovers from when it was a
staging driver.
Signed-off-by: Michael S. Tsirkin
Michael S. Tsirkin (3):
vhost: src file renames
tcm_vhost: header split up
On slow cpus the large number of task wakeups and context switches
triggered by freezing and thawing tasks can take a significant amount
of cpu time. This patch series reduces the amount of work done during
freezing tasks by avoiding waking up tasks that are already in a freezable
state.
The
All tasks can easily be frozen in under 10 ms, switch to using
an initial 1 ms sleep followed by exponential backoff until
8 ms. Also convert the printed time to ms instead of centiseconds.
Signed-off-by: Colin Cross
---
kernel/power/process.c | 23 +--
1 file changed, 13
Avoid waking up every thread sleeping in a futex_wait call during
suspend and resume by calling a freezable blocking call. Previous
patches modified the freezer to avoid sending wakeups to threads
that are blocked in freezable blocking calls.
This call was selected to be converted to a freezable
Avoid waking up every thread sleeping in a binder call during
suspend and resume by calling a freezable blocking call. Previous
patches modified the freezer to avoid sending wakeups to threads
that are blocked in freezable blocking calls.
This call was selected to be converted to a freezable
Avoid waking up every thread sleeping in a select call during
suspend and resume by calling a freezable blocking call. Previous
patches modified the freezer to avoid sending wakeups to threads
that are blocked in freezable blocking calls.
This call was selected to be converted to a freezable
Avoid waking up every thread sleeping in an epoll_wait call during
suspend and resume by calling a freezable blocking call. Previous
patches modified the freezer to avoid sending wakeups to threads
that are blocked in freezable blocking calls.
This call was selected to be converted to a
Avoid waking up every thread sleeping in a nanosleep call during
suspend and resume by calling a freezable blocking call. Previous
patches modified the freezer to avoid sending wakeups to threads
that are blocked in freezable blocking calls.
This call was selected to be converted to a freezable
Freezing tasks will wake up almost every userspace task from
where it is blocking and force it to run until it hits a
call to try_to_sleep(), generally on the exit path from the syscall
it is blocking in. On resume each task will run again, usually
restarting the syscall and running until it hits
Avoid waking up every thread sleeping in read call on an AF_UNIX
socket during suspend and resume by calling a freezable blocking
call. Previous patches modified the freezer to avoid sending
wakeups to threads that are blocked in freezable blocking calls.
This call was selected to be converted
Android goes through suspend/resume very often (every few seconds when
on a busy wifi network with the screen off), and a significant portion
of the energy used to go in and out of suspend is spent in the
freezer. If a task has called freezer_do_not_count(), don't bother
waking it up. If it
Avoid waking up every thread sleeping in a sigtimedwait call during
suspend and resume by calling a freezable blocking call. Previous
patches modified the freezer to avoid sending wakeups to threads
that are blocked in freezable blocking calls.
This call was selected to be converted to a
On Mon, Apr 29, 2013 at 08:48:17PM -0400, Rik van Riel wrote:
>
> It could also print out a friendly message, to
> inform the user they should upgrade to a 64 bit
> kernel to enjoy the use of all of their memory.
Oh, oh, oh!!! Can we use my message:
http://lwn.net/Articles/501769/
OK, maybe
On 2013年04月30日 16:44, Jonghwan Choi wrote:
> This patch looks like it should be in the 3.8-stable tree, should we apply
> it?
For me, I recommend it. :-)
Thanks.
--
Chen Gang
Asianux Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a
On Wed, May 1, 2013 at 1:47 PM, David Miller wrote:
>
> Highlights (1721 non-merge commits, this has to be a record of some
> sort):
Lowlight: it completely breaks my machine with r8169 ethernet. In the
networkmanager applet, it claims no cable connection, which is a bit
odd, because (a) it
On 2013年04月30日 10:24, Stephen Rothwell wrote:
> Hi all,
>
> Today's linux-next merge of the net-next tree got a conflict in
> net/mac802154/mac802154.h between commit 2c1bbbffa0b6 ("net: mac802154:
> comparision issue of type cast, finding by EXTRA_CFLAGS=-W") from the net
> tree and commit
>No, the link errors are for __ctzdi2, not __clzdi2.
>__ctzdi2 can be implemented using __ffs().
>> How's about we stop using __builtin_ctz[ll]() altogether? Use N-fls()?
>
>That was my first suggestion ;-)
>
Do we remove existing __builtin_ct[l]z?
Some architecture's __builtin_clz will be more
On Thu, May 2, 2013 at 10:41 AM, Daniel Vetter wrote:
> On Thu, May 2, 2013 at 2:02 AM, Borislav Petkov wrote:
>> Hi,
>>
>> I'm seeing this when booting latest Linus tree + tip/master in kvm.
>> Config is attached. Looks like it cannot find root fs and panics and
>> calls the panic notifier
On Tuesday, April 30, 2013 05:38:38 PM Toshi Kani wrote:
> On Mon, 2013-04-29 at 14:26 +0200, Rafael J. Wysocki wrote:
> > From: Rafael J. Wysocki
> >
> > In some cases, graceful hot-removal of devices is not possible,
> > although in principle the devices in question support hotplug.
> > For
This will be used by blk-throttle hierarchy support.
Signed-off-by: Tejun Heo
---
block/blk-cgroup.h | 14 ++
1 file changed, 14 insertions(+)
diff --git a/block/blk-cgroup.h b/block/blk-cgroup.h
index 11f5b92..e15f731 100644
--- a/block/blk-cgroup.h
+++ b/block/blk-cgroup.h
@@
When bps or iops configuration changes, blk-throttle records the new
configuration and sets a flag indicating that the config has changed.
The flag is checked in the bio dispatch path and applied. This
deferred config application was necessary due to limitations in blkcg
framework, which haven't
throtl_nr_queued() is used in several places to avoid performing
certain operations when the throtl_data is empty. This usually is
useless as those paths usually aren't traveled if there's no bio
queued.
* throtl_schedule_delayed_work() skips scheduling dispatch work item
if @td doesn't have
blk-throttle is about to go through major restructuring to support
hierarchy. Do cosmetic updates in preparation.
* s/throtl_data->throtl_work/throtl_data->dispatch_work/
* s/blk_throtl_work()/blk_throtl_dispatch_work_fn()/
* Collapse throtl_dispatch() into blk_throtl_dispatch_work_fn()
This
blk-throttle is still using function-defining macros to define flag
handling functions, which went out style at least a decade ago.
Just define the flag as bitmask and use direct bit operations.
This patch doesn't make any functional changes.
Signed-off-by: Tejun Heo
---
block/blk-throttle.c
Add throtl_grp->td so that the td (throtl_data) a given tg
(throtl_grp) belongs to can be determined, and remove @td argument
from functions which take both @td and @tg as the former now can be
determined from the latter.
This generally simplifies the code and removes a number of cases where
@td
Currently, when creating a new blkcg_gq, each policy's pd_init_fn() is
invoked in blkg_alloc() before the parent is linked. This makes it
difficult for policies to perform initializations which are dependent
on the parent.
This patch moves pd_init_fn() invocations to blkg_create() after the
Currently, when the last reference of a blkcg_gq is put, all then
release operations sans the actual freeing happen directly in
blkg_put(). As blkg_put() may be called under queue_lock, all
pd_exit_fn()s may be too. This makes it impossible for pd_exit_fn()s
to use del_timer_sync() on timers
throtl_service_queue will be the building block of hierarchy support
and will form a tree. This patch updates its usages as arguments to
reduce confusion.
* When a service queue is used as the parent role - the host of the
rbtree - use @parent_sq instead of @sq.
* For functions taking both
Currently, there's single service_queue per queue -
throtl_data->service_queue. All active throtl_grp's are queued on the
queue and dispatched according to their limits. To support hierarchy,
this will be expanded such that active throtl_grp's form a tree
anchored at throtl_data->service_queue
throtl_service_queues will eventually form a tree which is anchored at
throtl_data->service_queue and queue bios will climb the tree to the
top service_queue to be executed.
This patch makes the dispatch paths in blk_throtl_dispatch_work_fn()
and blk_throtl_drain() to dispatch bios to
When blk_throtl_bio() wants to queue a bio to a tg (throtl_grp), it
avoids invoking tg_update_disptime() and
throtl_schedule_next_dispatch() if the tg already has bios queued in
that direction. As a new bio is appeneded after the existing ones, it
can't change the tg's next dispatch time or the
On Wednesday, May 01, 2013 02:20:12 PM Toshi Kani wrote:
> On Wed, 2013-05-01 at 17:05 +0200, Rafael J. Wysocki wrote:
> > On Tuesday, April 30, 2013 05:49:38 PM Toshi Kani wrote:
> > > On Mon, 2013-04-29 at 14:29 +0200, Rafael J. Wysocki wrote:
> > > > From: Rafael J. Wysocki
> > > >
> > > >
To prepare for hierarchy support, this patch adds
throtl_service_queue->service_sq which points to the arent
service_queue. Currently, for all service_queues embedded in
throtl_grps, it points to throtl_data->service_queue. As
throtl_data->service_queue doesn't have a parent its parent_sq is set
throtl_select_dispatch() calls throtl_enqueue_tg() right after
tg_update_disptime(), which always calls the function anyway. The
call is, while harmless, unnecessary. Remove it.
This patch doesn't introduce any behavior difference.
Signed-off-by: Tejun Heo
---
block/blk-throttle.c | 4 +---
Now that both throtl_data and throtl_grp embed throtl_service_queue,
we can unify throtl_log() and throtl_log_tg().
* sq_to_tg() is added. This returns the throtl_grp a service_queue is
embedded in. If the service_queue is the top-level one embedded in
throtl_data, NULL is returned.
*
throtl_select_dispatch() only dispatches throtl_quantum bios on each
invocation. blk_throtl_dispatch_work_fn() in turn depends on
throtl_schedule_next_dispatch() scheduling the next dispatch window
immediately so that undue delays aren't incurred. This effectively
chains multiple dispatch work
With proper hierarchy support, a bio can be dispatched multiple times
until it reaches the top-level service_queue and we don't want to
update dispatch stats at each step. They are local stats and will be
kept local. If recursive stats are necessary, they should be
implemented separately and
Currently, blk_throtl_bio() issues the passed in bio directly if it's
within limits of its associated tg (throtl_grp). This behavior
becomes incorrect with hierarchy support as the bio should be
accounted to and throttled by the ancestor throtl_grps too.
This patch makes the direct issue path of
Currently, throtl_data->dispatch_work is a delayed_work item which
handles both delayed dispatch and issuing bios. The two tasks will be
separated to support proper hierarchy. To prepare for that, this
patch separates out the timer into throtl_service_queue->pending_timer
from
throtl_rb_root will be expanded to cover more roles for hierarchy
support. Rename it to throtl_service_queue and make its fields more
descriptive.
* rb-> pending_tree
* left -> first_pending
* count -> nr_pending
* min_disptime -> first_pending_disptime
This patch
throtl_service_queues will eventually form a tree which is anchored at
throtl_data->service_queue and queue bios will climb the tree to the
top service_queue to be executed.
This patch moves bio_lists[] and nr_queued[] from throtl_grp to its
service_queue to prepare for that. As currently only
On Thu, May 2, 2013 at 2:02 AM, Borislav Petkov wrote:
> Hi,
>
> I'm seeing this when booting latest Linus tree + tip/master in kvm.
> Config is attached. Looks like it cannot find root fs and panics and
> calls the panic notifier which screams in drm_crtc.c because not all
> modeset locks are
tg_dispatch_one_bio() currently assumes that the parent_sq is the top
level one and the bio being dispatched is ready to be issued; however,
this assumption will be wrong with proper hierarchy support. This
patch makes the following changes to make tg_dispatch_on_bio() ready
for hiearchy.
*
blk_throtl_bio() has a quick exit path for throtl_grps without limits
configured. It looks at the bps and iops limits and if both are not
configured, the bio is issued immediately. While this is correct in
the current flat hierarchy as each throtl_grp behaves completely
independently, it would
With the recent updates, blk-throttle is finally ready for proper
hierarchy support. Dispatching now honors service_queue->parent_sq
and propagates correctly. The only thing missing is setting
->parent_sq correctly so that throtl_grp hierarchy matches the cgroup
hierarchy.
This patch updates
The current blk_throtl_drain() assumes that all active throtl_grps are
queued on throtl_data->service_queue, which won't be true once
hierarchy support is implemented.
This patch makes blk_throtl_drain() perform post-order walk of the
blkg hierarchy draining each associated throtl_grp, which
throtl_pending_timer_fn() currently assumes that the parent_sq is the
top level one and the bio's dispatched are ready to be issued;
however, this assumption will be wrong with proper hierarchy support.
This patch makes the following changes to make
throtl_pending_timer_fn() ready for hiearchy.
*
Currently, blk_throtl_dispatch_work_fn() is responsible for both
dispatching bio's from throtl_grp's according to their limits and then
issuing the dispatched bios.
This patch moves the dispatch part to throtl_pending_timer_fn() so
that the work item is kicked iff there are bio's to issue. This
throtl_service_queue will be used as the basic block to implement
hierarchy support. Pass around throtl_service_queue *sq instead of
throtl_data *td in the following functions which will be used across
multiple levels of hierarchy.
* [__]throtl_enqueue/dequeue_tg()
* throtl_add_bio_tg()
*
1 - 100 of 895 matches
Mail list logo