All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: What's cooking in git.git (Jun 2011, #02; Sat, 11)
From: Jeff King @ 2011-06-16 21:05 UTC (permalink / raw)
  To: Elijah Newren; +Cc: Jay Soffian, Junio C Hamano, git
In-Reply-To: <BANLkTin-sAXAZ4ZJ9z77SSYx+xYTYeZMww@mail.gmail.com>

On Mon, Jun 13, 2011 at 10:27:50PM -0600, Elijah Newren wrote:

> On Sun, Jun 12, 2011 at 12:49 AM, Junio C Hamano <gitster@pobox.com> wrote:
> > Here are the topics that have been cooking.  Commits prefixed with '-' are
> > only in 'pu' while commits prefixed with '+' are in 'next'.
> >
> > --------------------------------------------------
> > [Stalled]
> >
> > * jk/maint-merge-rename-create (2011-03-25) 3 commits
> >  - merge: turn on rewrite detection
> >  - merge: handle renames with replacement content
> >  - t3030: fix accidental success in symlink rename
> >
> > Peff wanted to reroll this. Perhaps will discard to make room for Elijah's
> > merge-recursive series in the meantime.
> 
> Peff: Do you want any help rerolling, updating, reviewing, etc.?  I
> don't want to cause any undue problems with my merge-recursive series,
> and besides, the idea you have in this series looks like it may be
> interesting.

Thanks. The sticking point in my series that there is a weird regression
it introduces, and I haven't quite figured out the cause.

I'm cc'ing Jay Soffian, who found it. You can reproduce with this recipe
(sorry, the chromium repo is huge, but I don't have a smaller test case
yet):

  git clone http://git.chromium.org/git/chromium.git &&
  cd chromium &&
  git config merge.renameLimit 0 &&
  git checkout 0f6d00c &&
  git cherry-pick d7081a74

Looking at d7081a74, you can see that it's a tiny commit, and in fact it
should cherry-pick just fine. But due to the 3-way merge that
cherry-pick does, we still end up considering a lot of renames between
the merge base (d7081a74^) and 0f6d00c. Which is fine and correct, of
course, but makes the merge a lot more complex than it would at first
appear.

With git v1.7.5.3, it works just fine. With my patches on top, it
reliably fails the merge (even though there were no conflicts!), and
leaves a ton of crufty temporary files in the working directory.

Bumping up the merge verbosity, it does report a bunch of rename/add
conflicts. Which are totally bogus, of course. Here's what I wrote
earlier to Jay:

   The final patch turned on break detection. The patch before it fixed
   the "source" case: when the source of a rename comes from something
   besides empty (because the source is a broken pair), we need to merge
   properly and not just delete. But I never did the "dest" case, in
   which merge-recursive assumes that renamed content started as empty.

   And that's why you see the bogus "rename/add" conflict, I think. It's
   assuming the file came from nowhere, but it came from a break pair.
   So the good news is I think I can come up with a simple test case,
   and the fix is probably something like comparing against the ancestor
   sha1 instead of the null sha1.

But then I got sidetracked, and as you probably know from working on
merge-recursive, it's some pretty hairy code. Every time I start to look
at it I get confused and can't remember what breakthrough I thought I
was close to making before. :)

If you have any input, I'd appreciate it.

-Peff

^ permalink raw reply

* Issues with Linux loading code
From: Matthew Garrett @ 2011-06-16 21:04 UTC (permalink / raw)
  To: grub-devel

I'm currently handling some issues related to the kernel ending up on 
top of used EFI regions on some machines. These seem to be exacerbated 
by some of grub's behaviour. It seems that the kernel will always be 
loaded at GRUB_LINUX_BZIMAGE_ADDR, which is problematic in two cases - 
one being that the kernel can be configured with a different start 
address, and also that the firmware may have put code there that we wish 
to preserve.

At present it doesn't seem possible to indicate to the relocator that if 
there isn't enough space for the decompressed kernel (ie, the init_size 
parameter from the header) at the desired address, it should put the 
kernel somewhere else making sure to adhere to the alignment constraints 
the kernel provides. The load address and the alignment then need to be 
written back into the kernel header.

Or am I misinterpreting the behaviour of the relocation code?

-- 
Matthew Garrett | mjg59@srcf.ucam.org


^ permalink raw reply

* Re: REGRESSION: Performance regressions from switching anon_vma->lock to mutex
From: Linus Torvalds @ 2011-06-16 20:37 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Peter Zijlstra, Tim Chen, Shaohua Li, Andrew Morton, Hugh Dickins,
	KOSAKI Motohiro, Benjamin Herrenschmidt, David Miller,
	Martin Schwidefsky, Russell King, Paul Mundt, Jeff Dike,
	Richard Weinberger, Luck, Tony, KAMEZAWA Hiroyuki, Mel Gorman,
	Nick Piggin, Namhyung Kim, Shi, Alex,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Rafael J. Wysocki
In-Reply-To: <4DFA6442.9000103@linux.intel.com>

On Thu, Jun 16, 2011 at 1:14 PM, Andi Kleen <ak@linux.intel.com> wrote:
>
> I haven't analyzed it in detail, but I suspect it's some cache line bounce,
> which
> can slow things down quite a lot.  Also the total number of invocations
> is quite high (hundreds of messages per core * 32 cores)

The fact is, glibc is just total crap.

I tried to send uli a patch to just add caching. No go. I sent
*another* patch to at least make glibc use a sane interface (and the
cache if it needs to fall back on /proc/stat for some legacy reason).
We'll see what happens.

Paul Eggbert suggested "caching for one second" - by just calling
"gettimtofday()" to see how old the cache is. That would work too.

The point I'm making is that it really is a glibc problem. Glibc is
doing stupid expensive things, and not trying to correct for the fact
that it's expensive.

> I did, but I gave up fully following that code path because it's so
> convoluted :-/

I do agree that glibc sources are incomprehensible, with multiple
layers of abstraction (sysdeps, "posix", helper functions etc etc).

In this case it was really trivial to find the culprit with a simple

   git grep /proc/stat

though. The code is crap. It's insane. It's using
/sys/devices/system/cpu for _SC_NPROCESSORS_CONF, which is at least a
reasonable interface to use. But it does it in odd ways, and actually
counts the CPU's by doing a readdir call. And it doesn't cache the
result, even though that particular result had better be 100% stable -
it has nothing to do with "online" vs "offline" etc.

But then for _SC_NPROCESSORS_ONLN, it doesn't actually use
/sys/devices/system/cpu at all, but the /proc/stat interface. Which is
slow, mostly because it has all the crazy interrupt stuff in it, but
also because it has lots of legacy stuff.

I wrote a _much_ cleaner routine (loosely based on what we do in
tools/prof) to just parse /sys/devices/system/cpu/online. I didn't
even time it, but I can almost guarantee that it's an order of
magnitude faster than /proc/stat. And if that doesn't work, you can
fall back on a cached version of the /proc/stat parsing, since if
those files don't exist, you can forget about CPU hotplug.

> So you mean caching it at startup time? Otherwise the parent would
> need to do sysconf() at least , which it doesn't do (the exim source doesn't
> really know anything about libdb internals)

Even if you do it in the children, it will help. At least it would be
run just _once_ per fork.

But actually looking at glibc just shows that they are simply doing
stupid things. And I absolutely _refuse_ to add new interfaces to the
kernel only because glibc is being a moron.

                       Linus

^ permalink raw reply

* Re: [GIT PULL] Re: REGRESSION: Performance regressions from switching anon_vma->lock to mutex
From: Andi Kleen @ 2011-06-16 21:02 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Paul E. McKenney, Linus Torvalds, Peter Zijlstra, Tim Chen,
	Andrew Morton, Hugh Dickins, KOSAKI Motohiro,
	Benjamin Herrenschmidt, David Miller, Martin Schwidefsky,
	Russell King, Paul Mundt, Jeff Dike, Richard Weinberger,
	Tony Luck, KAMEZAWA Hiroyuki, Mel Gorman, Nick Piggin,
	Namhyung Kim, shaohua.li, alex.shi, linux-kernel, linux-mm,
	Rafael J. Wysocki
In-Reply-To: <20110616202550.GA16214@elte.hu>

> So user-return notifiers ought to be the ideal platform for that, 
> right? We don't even have to touch the scheduler: anything that 
> schedules will eventually return to user-space, at which point the 
> RCU GC magic can run.

That's not necessarily true. Consider a router which only routes and never runs
user space. You would starve it. Given it's somewhat obscure, but it's possible.

-Andi
-- 
ak@linux.intel.com -- Speaking for myself only

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [GIT PULL] Re: REGRESSION: Performance regressions from switching anon_vma->lock to mutex
From: Andi Kleen @ 2011-06-16 21:02 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Paul E. McKenney, Linus Torvalds, Peter Zijlstra, Tim Chen,
	Andrew Morton, Hugh Dickins, KOSAKI Motohiro,
	Benjamin Herrenschmidt, David Miller, Martin Schwidefsky,
	Russell King, Paul Mundt, Jeff Dike, Richard Weinberger,
	Tony Luck, KAMEZAWA Hiroyuki, Mel Gorman, Nick Piggin,
	Namhyung Kim, shaohua.li, alex.shi, linux-kernel, linux-mm,
	Rafael J. Wysocki
In-Reply-To: <20110616202550.GA16214@elte.hu>

> So user-return notifiers ought to be the ideal platform for that, 
> right? We don't even have to touch the scheduler: anything that 
> schedules will eventually return to user-space, at which point the 
> RCU GC magic can run.

That's not necessarily true. Consider a router which only routes and never runs
user space. You would starve it. Given it's somewhat obscure, but it's possible.

-Andi
-- 
ak@linux.intel.com -- Speaking for myself only

^ permalink raw reply

* [PATCH net-next] net: remove mm.h inclusion from netdevice.h
From: Alexey Dobriyan @ 2011-06-16 21:01 UTC (permalink / raw)
  To: davem; +Cc: netdev, linux-kernel, fujita.tomonori, linux-arch

Remove linux/mm.h inclusion from netdevice.h -- it's unused (I've checked manually).

To prevent mm.h inclusion via other channels also extract "enum dma_data_direction"
definition into separate header. This tiny piece is what gluing netdevice.h with mm.h
via "netdevice.h => dmaengine.h => dma-mapping.h => scatterlist.h => mm.h".
Removal of mm.h from scatterlist.h was tried and was found not feasible
on most archs, so the link was cutoff earlier.

Hope people are OK with tiny include file.

Note, that mm_types.h is still dragged in, but it is a separate story.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
---

 arch/arm/mach-davinci/board-mityomapl138.c        |    1 +
 arch/arm/mach-davinci/dm646x.c                    |    1 +
 arch/arm/mach-davinci/pm.c                        |    1 +
 arch/arm/mach-imx/dma-v1.c                        |    1 +
 arch/arm/mach-imx/mach-mx31_3ds.c                 |    1 +
 arch/arm/mach-iop13xx/setup.c                     |    1 +
 arch/arm/mach-mxs/devices/platform-auart.c        |    1 +
 arch/arm/mach-mxs/devices/platform-dma.c          |    1 +
 arch/arm/mach-mxs/devices/platform-fec.c          |    1 +
 arch/arm/plat-mxc/devices/platform-fec.c          |    1 +
 arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c |    1 +
 arch/arm/plat-mxc/devices/platform-imx-fb.c       |    1 +
 arch/arm/plat-mxc/devices/platform-ipu-core.c     |    1 +
 arch/arm/plat-mxc/devices/platform-mxc-ehci.c     |    1 +
 arch/arm/plat-mxc/devices/platform-mxc-mmc.c      |    1 +
 arch/arm/plat-nomadik/include/plat/ste_dma40.h    |    1 +
 arch/x86/kernel/tboot.c                           |    1 +
 crypto/async_tx/raid6test.c                       |    1 +
 drivers/dma/coh901318.c                           |    1 +
 drivers/dma/dmaengine.c                           |    1 +
 drivers/dma/dmatest.c                             |    1 +
 drivers/dma/ipu/ipu_idmac.c                       |    1 +
 drivers/dma/ste_dma40.c                           |    1 +
 drivers/media/dvb/mantis/mantis_ca.c              |    1 +
 drivers/media/dvb/mantis/mantis_evm.c             |    1 +
 drivers/media/dvb/mantis/mantis_hif.c             |    1 +
 drivers/media/dvb/mantis/mantis_ioc.c             |    1 +
 drivers/media/dvb/mantis/mantis_pcmcia.c          |    1 +
 drivers/media/dvb/mantis/mantis_uart.c            |    1 +
 drivers/media/dvb/mantis/mantis_vp1034.c          |    1 +
 drivers/mmc/host/tmio_mmc_dma.c                   |    1 +
 drivers/mtd/nand/atmel_nand.c                     |    1 +
 drivers/net/arm/ks8695net.c                       |    1 +
 drivers/net/can/janz-ican3.c                      |    1 +
 drivers/net/can/softing/softing_fw.c              |    1 +
 drivers/net/can/softing/softing_main.c            |    1 +
 drivers/net/ethoc.c                               |    1 +
 drivers/net/fec_mpc52xx.c                         |    1 +
 drivers/net/greth.c                               |    1 +
 drivers/net/irda/pxaficp_ir.c                     |    1 +
 drivers/net/ks8851_mll.c                          |    1 +
 drivers/net/sgiseeq.c                             |    1 +
 drivers/net/stmmac/dwmac1000_core.c               |    1 +
 drivers/net/stmmac/dwmac1000_dma.c                |    1 +
 drivers/net/stmmac/dwmac100_core.c                |    1 +
 drivers/net/stmmac/dwmac100_dma.c                 |    1 +
 drivers/net/stmmac/stmmac_ethtool.c               |    1 +
 drivers/net/stmmac/stmmac_mdio.c                  |    1 +
 drivers/net/usb/cdc-phonet.c                      |    1 +
 drivers/net/vxge/vxge-config.h                    |    1 +
 drivers/net/wireless/ath/ath5k/base.c             |    1 +
 drivers/net/wireless/ath/ath9k/beacon.c           |    1 +
 drivers/net/wireless/ath/ath9k/init.c             |    1 +
 drivers/net/wireless/ath/ath9k/recv.c             |    1 +
 drivers/net/wireless/ath/ath9k/xmit.c             |    1 +
 drivers/tty/serial/ifx6x60.c                      |    1 +
 drivers/usb/gadget/f_phonet.c                     |    1 +
 include/crypto/if_alg.h                           |    1 +
 include/linux/dma-direction.h                     |   13 +++++++++++++
 include/linux/dma-mapping.h                       |   10 +---------
 include/linux/dmaengine.h                         |    4 +++-
 include/linux/netdevice.h                         |    1 -
 net/sched/sch_netem.c                             |    1 +
 security/apparmor/lib.c                           |    1 +
 64 files changed, 77 insertions(+), 11 deletions(-)

--- a/arch/arm/mach-davinci/board-mityomapl138.c
+++ b/arch/arm/mach-davinci/board-mityomapl138.c
@@ -20,6 +20,7 @@
 #include <linux/spi/spi.h>
 #include <linux/spi/flash.h>
 
+#include <asm/io.h>
 #include <asm/mach-types.h>
 #include <asm/mach/arch.h>
 #include <mach/common.h>
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -8,6 +8,7 @@
  * is licensed "as is" without any warranty of any kind, whether express
  * or implied.
  */
+#include <linux/dma-mapping.h>
 #include <linux/init.h>
 #include <linux/clk.h>
 #include <linux/serial_8250.h>
--- a/arch/arm/mach-davinci/pm.c
+++ b/arch/arm/mach-davinci/pm.c
@@ -17,6 +17,7 @@
 
 #include <asm/cacheflush.h>
 #include <asm/delay.h>
+#include <asm/io.h>
 
 #include <mach/da8xx.h>
 #include <mach/sram.h>
--- a/arch/arm/mach-imx/dma-v1.c
+++ b/arch/arm/mach-imx/dma-v1.c
@@ -26,6 +26,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/interrupt.h>
+#include <linux/err.h>
 #include <linux/errno.h>
 #include <linux/clk.h>
 #include <linux/scatterlist.h>
--- a/arch/arm/mach-imx/mach-mx31_3ds.c
+++ b/arch/arm/mach-imx/mach-mx31_3ds.c
@@ -13,6 +13,7 @@
  */
 
 #include <linux/delay.h>
+#include <linux/dma-mapping.h>
 #include <linux/types.h>
 #include <linux/init.h>
 #include <linux/clk.h>
--- a/arch/arm/mach-iop13xx/setup.c
+++ b/arch/arm/mach-iop13xx/setup.c
@@ -17,6 +17,7 @@
  *
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/serial_8250.h>
 #include <linux/io.h>
 #ifdef CONFIG_MTD_PHYSMAP
--- a/arch/arm/mach-mxs/devices/platform-auart.c
+++ b/arch/arm/mach-mxs/devices/platform-auart.c
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <asm/sizes.h>
 #include <mach/mx23.h>
 #include <mach/mx28.h>
--- a/arch/arm/mach-mxs/devices/platform-dma.c
+++ b/arch/arm/mach-mxs/devices/platform-dma.c
@@ -6,6 +6,7 @@
  * Free Software Foundation.
  */
 #include <linux/compiler.h>
+#include <linux/dma-mapping.h>
 #include <linux/err.h>
 #include <linux/init.h>
 
--- a/arch/arm/mach-mxs/devices/platform-fec.c
+++ b/arch/arm/mach-mxs/devices/platform-fec.c
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <asm/sizes.h>
 #include <mach/mx28.h>
 #include <mach/devices-common.h>
--- a/arch/arm/plat-mxc/devices/platform-fec.c
+++ b/arch/arm/plat-mxc/devices/platform-fec.c
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <asm/sizes.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
--- a/arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c
+++ b/arch/arm/plat-mxc/devices/platform-fsl-usb2-udc.c
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
--- a/arch/arm/plat-mxc/devices/platform-imx-fb.c
+++ b/arch/arm/plat-mxc/devices/platform-imx-fb.c
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
--- a/arch/arm/plat-mxc/devices/platform-ipu-core.c
+++ b/arch/arm/plat-mxc/devices/platform-ipu-core.c
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
--- a/arch/arm/plat-mxc/devices/platform-mxc-ehci.c
+++ b/arch/arm/plat-mxc/devices/platform-mxc-ehci.c
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
--- a/arch/arm/plat-mxc/devices/platform-mxc-mmc.c
+++ b/arch/arm/plat-mxc/devices/platform-mxc-mmc.c
@@ -6,6 +6,7 @@
  * the terms of the GNU General Public License version 2 as published by the
  * Free Software Foundation.
  */
+#include <linux/dma-mapping.h>
 #include <mach/hardware.h>
 #include <mach/devices-common.h>
 
--- a/arch/arm/plat-nomadik/include/plat/ste_dma40.h
+++ b/arch/arm/plat-nomadik/include/plat/ste_dma40.h
@@ -10,6 +10,7 @@
 #define STE_DMA40_H
 
 #include <linux/dmaengine.h>
+#include <linux/scatterlist.h>
 #include <linux/workqueue.h>
 #include <linux/interrupt.h>
 
--- a/arch/x86/kernel/tboot.c
+++ b/arch/x86/kernel/tboot.c
@@ -36,6 +36,7 @@
 #include <asm/bootparam.h>
 #include <asm/pgtable.h>
 #include <asm/pgalloc.h>
+#include <asm/swiotlb.h>
 #include <asm/fixmap.h>
 #include <asm/proto.h>
 #include <asm/setup.h>
--- a/crypto/async_tx/raid6test.c
+++ b/crypto/async_tx/raid6test.c
@@ -21,6 +21,7 @@
  */
 #include <linux/async_tx.h>
 #include <linux/gfp.h>
+#include <linux/mm.h>
 #include <linux/random.h>
 
 #undef pr
--- a/drivers/dma/coh901318.c
+++ b/drivers/dma/coh901318.c
@@ -11,6 +11,7 @@
 #include <linux/module.h>
 #include <linux/kernel.h> /* printk() */
 #include <linux/fs.h> /* everything... */
+#include <linux/scatterlist.h>
 #include <linux/slab.h> /* kmalloc() */
 #include <linux/dmaengine.h>
 #include <linux/platform_device.h>
--- a/drivers/dma/dmaengine.c
+++ b/drivers/dma/dmaengine.c
@@ -45,6 +45,7 @@
  * See Documentation/dmaengine.txt for more details
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/init.h>
 #include <linux/module.h>
 #include <linux/mm.h>
--- a/drivers/dma/dmatest.c
+++ b/drivers/dma/dmatest.c
@@ -8,6 +8,7 @@
  * published by the Free Software Foundation.
  */
 #include <linux/delay.h>
+#include <linux/dma-mapping.h>
 #include <linux/dmaengine.h>
 #include <linux/init.h>
 #include <linux/kthread.h>
--- a/drivers/dma/ipu/ipu_idmac.c
+++ b/drivers/dma/ipu/ipu_idmac.c
@@ -9,6 +9,7 @@
  * published by the Free Software Foundation.
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/init.h>
 #include <linux/platform_device.h>
 #include <linux/err.h>
--- a/drivers/dma/ste_dma40.c
+++ b/drivers/dma/ste_dma40.c
@@ -6,6 +6,7 @@
  * License terms: GNU General Public License (GPL) version 2
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/kernel.h>
 #include <linux/slab.h>
 #include <linux/dmaengine.h>
--- a/drivers/media/dvb/mantis/mantis_ca.c
+++ b/drivers/media/dvb/mantis/mantis_ca.c
@@ -22,6 +22,7 @@
 #include <linux/slab.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
--- a/drivers/media/dvb/mantis/mantis_evm.c
+++ b/drivers/media/dvb/mantis/mantis_evm.c
@@ -23,6 +23,7 @@
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
--- a/drivers/media/dvb/mantis/mantis_hif.c
+++ b/drivers/media/dvb/mantis/mantis_hif.c
@@ -23,6 +23,7 @@
 #include <linux/sched.h>
 
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
--- a/drivers/media/dvb/mantis/mantis_ioc.c
+++ b/drivers/media/dvb/mantis/mantis_ioc.c
@@ -24,6 +24,7 @@
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
--- a/drivers/media/dvb/mantis/mantis_pcmcia.c
+++ b/drivers/media/dvb/mantis/mantis_pcmcia.c
@@ -23,6 +23,7 @@
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
--- a/drivers/media/dvb/mantis/mantis_uart.c
+++ b/drivers/media/dvb/mantis/mantis_uart.c
@@ -20,6 +20,7 @@
 
 #include <linux/kernel.h>
 #include <linux/spinlock.h>
+#include <asm/io.h>
 
 #include <linux/signal.h>
 #include <linux/sched.h>
--- a/drivers/media/dvb/mantis/mantis_vp1034.c
+++ b/drivers/media/dvb/mantis/mantis_vp1034.c
@@ -21,6 +21,7 @@
 #include <linux/signal.h>
 #include <linux/sched.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "dmxdev.h"
 #include "dvbdev.h"
--- a/drivers/mmc/host/tmio_mmc_dma.c
+++ b/drivers/mmc/host/tmio_mmc_dma.c
@@ -11,6 +11,7 @@
  */
 
 #include <linux/device.h>
+#include <linux/dma-mapping.h>
 #include <linux/dmaengine.h>
 #include <linux/mfd/tmio.h>
 #include <linux/mmc/host.h>
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -22,6 +22,7 @@
  *
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <linux/moduleparam.h>
--- a/drivers/net/arm/ks8695net.c
+++ b/drivers/net/arm/ks8695net.c
@@ -16,6 +16,7 @@
  *		  Vincent Sanders <vince@simtec.co.uk>
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/module.h>
 #include <linux/ioport.h>
 #include <linux/netdevice.h>
--- a/drivers/net/can/janz-ican3.c
+++ b/drivers/net/can/janz-ican3.c
@@ -22,6 +22,7 @@
 #include <linux/can/error.h>
 
 #include <linux/mfd/janz.h>
+#include <asm/io.h>
 
 /* the DPM has 64k of memory, organized into 256x 256 byte pages */
 #define DPM_NUM_PAGES		256
--- a/drivers/net/can/softing/softing_fw.c
+++ b/drivers/net/can/softing/softing_fw.c
@@ -20,6 +20,7 @@
 #include <linux/firmware.h>
 #include <linux/sched.h>
 #include <asm/div64.h>
+#include <asm/io.h>
 
 #include "softing.h"
 
--- a/drivers/net/can/softing/softing_main.c
+++ b/drivers/net/can/softing/softing_main.c
@@ -21,6 +21,7 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/interrupt.h>
+#include <asm/io.h>
 
 #include "softing.h"
 
--- a/drivers/net/ethoc.c
+++ b/drivers/net/ethoc.c
@@ -11,6 +11,7 @@
  * Written by Thierry Reding <thierry.reding@avionic-design.de>
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/etherdevice.h>
 #include <linux/crc32.h>
 #include <linux/interrupt.h>
--- a/drivers/net/fec_mpc52xx.c
+++ b/drivers/net/fec_mpc52xx.c
@@ -14,6 +14,7 @@
  *
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/module.h>
 
 #include <linux/kernel.h>
--- a/drivers/net/greth.c
+++ b/drivers/net/greth.c
@@ -22,6 +22,7 @@
  *               Marko Isomaki
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/module.h>
 #include <linux/uaccess.h>
 #include <linux/init.h>
--- a/drivers/net/irda/pxaficp_ir.c
+++ b/drivers/net/irda/pxaficp_ir.c
@@ -12,6 +12,7 @@
  * Infra-red driver (SIR/FIR) for the PXA2xx embedded microprocessor
  *
  */
+#include <linux/dma-mapping.h>
 #include <linux/interrupt.h>
 #include <linux/module.h>
 #include <linux/netdevice.h>
--- a/drivers/net/ks8851_mll.c
+++ b/drivers/net/ks8851_mll.c
@@ -35,6 +35,7 @@
 #include <linux/platform_device.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
+#include <asm/io.h>
 
 #define	DRV_NAME	"ks8851_mll"
 
--- a/drivers/net/sgiseeq.c
+++ b/drivers/net/sgiseeq.c
@@ -6,6 +6,7 @@
 
 #undef DEBUG
 
+#include <linux/dma-mapping.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/slab.h>
--- a/drivers/net/stmmac/dwmac1000_core.c
+++ b/drivers/net/stmmac/dwmac1000_core.c
@@ -28,6 +28,7 @@
 
 #include <linux/crc32.h>
 #include <linux/slab.h>
+#include <asm/io.h>
 #include "dwmac1000.h"
 
 static void dwmac1000_core_init(void __iomem *ioaddr)
--- a/drivers/net/stmmac/dwmac1000_dma.c
+++ b/drivers/net/stmmac/dwmac1000_dma.c
@@ -26,6 +26,7 @@
   Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
 *******************************************************************************/
 
+#include <asm/io.h>
 #include "dwmac1000.h"
 #include "dwmac_dma.h"
 
--- a/drivers/net/stmmac/dwmac100_core.c
+++ b/drivers/net/stmmac/dwmac100_core.c
@@ -29,6 +29,7 @@
 *******************************************************************************/
 
 #include <linux/crc32.h>
+#include <asm/io.h>
 #include "dwmac100.h"
 
 static void dwmac100_core_init(void __iomem *ioaddr)
--- a/drivers/net/stmmac/dwmac100_dma.c
+++ b/drivers/net/stmmac/dwmac100_dma.c
@@ -28,6 +28,7 @@
   Author: Giuseppe Cavallaro <peppe.cavallaro@st.com>
 *******************************************************************************/
 
+#include <asm/io.h>
 #include "dwmac100.h"
 #include "dwmac_dma.h"
 
--- a/drivers/net/stmmac/stmmac_ethtool.c
+++ b/drivers/net/stmmac/stmmac_ethtool.c
@@ -27,6 +27,7 @@
 #include <linux/interrupt.h>
 #include <linux/mii.h>
 #include <linux/phy.h>
+#include <asm/io.h>
 
 #include "stmmac.h"
 #include "dwmac_dma.h"
--- a/drivers/net/stmmac/stmmac_mdio.c
+++ b/drivers/net/stmmac/stmmac_mdio.c
@@ -27,6 +27,7 @@
 #include <linux/mii.h>
 #include <linux/phy.h>
 #include <linux/slab.h>
+#include <asm/io.h>
 
 #include "stmmac.h"
 
--- a/drivers/net/usb/cdc-phonet.c
+++ b/drivers/net/usb/cdc-phonet.c
@@ -21,6 +21,7 @@
  */
 
 #include <linux/kernel.h>
+#include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/gfp.h>
 #include <linux/usb.h>
--- a/drivers/net/vxge/vxge-config.h
+++ b/drivers/net/vxge/vxge-config.h
@@ -16,6 +16,7 @@
 #include <linux/hardirq.h>
 #include <linux/list.h>
 #include <linux/slab.h>
+#include <asm/io.h>
 
 #ifndef VXGE_CACHE_LINE_SIZE
 #define VXGE_CACHE_LINE_SIZE 128
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -42,6 +42,7 @@
 
 #include <linux/module.h>
 #include <linux/delay.h>
+#include <linux/dma-mapping.h>
 #include <linux/hardirq.h>
 #include <linux/if.h>
 #include <linux/io.h>
--- a/drivers/net/wireless/ath/ath9k/beacon.c
+++ b/drivers/net/wireless/ath/ath9k/beacon.c
@@ -14,6 +14,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include <linux/dma-mapping.h>
 #include "ath9k.h"
 
 #define FUDGE 2
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -14,6 +14,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include <linux/dma-mapping.h>
 #include <linux/slab.h>
 #include <linux/ath9k_platform.h>
 
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -14,6 +14,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include <linux/dma-mapping.h>
 #include "ath9k.h"
 #include "ar9003_mac.h"
 
--- a/drivers/net/wireless/ath/ath9k/xmit.c
+++ b/drivers/net/wireless/ath/ath9k/xmit.c
@@ -14,6 +14,7 @@
  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  */
 
+#include <linux/dma-mapping.h>
 #include "ath9k.h"
 #include "ar9003_mac.h"
 
--- a/drivers/tty/serial/ifx6x60.c
+++ b/drivers/tty/serial/ifx6x60.c
@@ -36,6 +36,7 @@
  *	you need to use this driver for another platform.
  *
  *****************************************************************************/
+#include <linux/dma-mapping.h>
 #include <linux/module.h>
 #include <linux/termios.h>
 #include <linux/tty.h>
--- a/drivers/usb/gadget/f_phonet.c
+++ b/drivers/usb/gadget/f_phonet.c
@@ -20,6 +20,7 @@
  * 02110-1301 USA
  */
 
+#include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/kernel.h>
 #include <linux/device.h>
--- a/include/crypto/if_alg.h
+++ b/include/crypto/if_alg.h
@@ -16,6 +16,7 @@
 #include <linux/compiler.h>
 #include <linux/completion.h>
 #include <linux/if_alg.h>
+#include <linux/scatterlist.h>
 #include <linux/types.h>
 #include <net/sock.h>
 
new file mode 100644
--- /dev/null
+++ b/include/linux/dma-direction.h
@@ -0,0 +1,13 @@
+#ifndef _LINUX_DMA_DIRECTION_H
+#define _LINUX_DMA_DIRECTION_H
+/*
+ * These definitions mirror those in pci.h, so they can be used
+ * interchangeably with their PCI_ counterparts.
+ */
+enum dma_data_direction {
+	DMA_BIDIRECTIONAL = 0,
+	DMA_TO_DEVICE = 1,
+	DMA_FROM_DEVICE = 2,
+	DMA_NONE = 3,
+};
+#endif
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -4,17 +4,9 @@
 #include <linux/device.h>
 #include <linux/err.h>
 #include <linux/dma-attrs.h>
+#include <linux/dma-direction.h>
 #include <linux/scatterlist.h>
 
-/* These definitions mirror those in pci.h, so they can be used
- * interchangeably with their PCI_ counterparts */
-enum dma_data_direction {
-	DMA_BIDIRECTIONAL = 0,
-	DMA_TO_DEVICE = 1,
-	DMA_FROM_DEVICE = 2,
-	DMA_NONE = 3,
-};
-
 struct dma_map_ops {
 	void* (*alloc_coherent)(struct device *dev, size_t size,
 				dma_addr_t *dma_handle, gfp_t gfp);
--- a/include/linux/dmaengine.h
+++ b/include/linux/dmaengine.h
@@ -23,7 +23,9 @@
 
 #include <linux/device.h>
 #include <linux/uio.h>
-#include <linux/dma-mapping.h>
+#include <linux/dma-direction.h>
+
+struct scatterlist;
 
 /**
  * typedef dma_cookie_t - an opaque DMA cookie
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -34,7 +34,6 @@
 #include <linux/pm_qos_params.h>
 #include <linux/timer.h>
 #include <linux/delay.h>
-#include <linux/mm.h>
 #include <asm/atomic.h>
 #include <asm/cache.h>
 #include <asm/byteorder.h>
--- a/net/sched/sch_netem.c
+++ b/net/sched/sch_netem.c
@@ -13,6 +13,7 @@
  *		Catalin(ux aka Dino) BOIE <catab at umbrella dot ro>
  */
 
+#include <linux/mm.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/types.h>
--- a/security/apparmor/lib.c
+++ b/security/apparmor/lib.c
@@ -12,6 +12,7 @@
  * License.
  */
 
+#include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/string.h>
 #include <linux/vmalloc.h>

^ permalink raw reply

* Re: [GIT PULL] Re: REGRESSION: Performance regressions from switching anon_vma->lock to mutex
From: Frederic Weisbecker @ 2011-06-16 21:01 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Paul E. McKenney, Linus Torvalds, Peter Zijlstra, Tim Chen,
	Andrew Morton, Hugh Dickins, KOSAKI Motohiro,
	Benjamin Herrenschmidt, David Miller, Martin Schwidefsky,
	Russell King, Paul Mundt, Jeff Dike, Richard Weinberger,
	Tony Luck, KAMEZAWA Hiroyuki, Mel Gorman, Nick Piggin,
	Namhyung Kim, ak, shaohua.li, alex.shi, linux-kernel, linux-mm,
	Rafael J. Wysocki
In-Reply-To: <20110616202550.GA16214@elte.hu>

On Thu, Jun 16, 2011 at 10:25:50PM +0200, Ingo Molnar wrote:
> 
> * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> 
> > > The funny thing about this workload is that context-switches are 
> > > really a fastpath here and we are using anonymous IRQ-triggered 
> > > softirqs embedded in random task contexts as a workaround for 
> > > that.
> > 
> > The other thing that the IRQ-triggered softirqs do is to get the 
> > callbacks invoked in cases where a CPU-bound user thread is never 
> > context switching.
> 
> Yeah - but this workload didnt have that.
> 
> > Of course, one alternative might be to set_need_resched() to force 
> > entry into the scheduler as needed.
> 
> No need for that: we can just do the callback not in softirq but in 
> regular syscall context in that case, in the return-to-userspace 
> notifier. (see TIF_USER_RETURN_NOTIFY and the USER_RETURN_NOTIFIER 
> facility)
> 
> Abusing a facility like setting need_resched artificially will 
> generally cause trouble.

If the task enqueued callbacks in the kernel, thus started a new grace period,
it might return to userspace before every CPUs have completed that grace period,
and you need that full completion to happen before invoking the callbacks.

I think you need to keep the tick in such case because you can't count on
the other CPUs to handle that completion as they may be all idle.

So when you resume to userspace and you started a GP, either you find another
CPU to handle the GP completion and callbacks executions, or you keep the tick
until you are done.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

^ permalink raw reply

* Re: [GIT PULL] Re: REGRESSION: Performance regressions from switching anon_vma->lock to mutex
From: Frederic Weisbecker @ 2011-06-16 21:01 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Paul E. McKenney, Linus Torvalds, Peter Zijlstra, Tim Chen,
	Andrew Morton, Hugh Dickins, KOSAKI Motohiro,
	Benjamin Herrenschmidt, David Miller, Martin Schwidefsky,
	Russell King, Paul Mundt, Jeff Dike, Richard Weinberger,
	Tony Luck, KAMEZAWA Hiroyuki, Mel Gorman, Nick Piggin,
	Namhyung Kim, ak, shaohua.li, alex.shi, linux-kernel, linux-mm,
	Rafael J. Wysocki
In-Reply-To: <20110616202550.GA16214@elte.hu>

On Thu, Jun 16, 2011 at 10:25:50PM +0200, Ingo Molnar wrote:
> 
> * Paul E. McKenney <paulmck@linux.vnet.ibm.com> wrote:
> 
> > > The funny thing about this workload is that context-switches are 
> > > really a fastpath here and we are using anonymous IRQ-triggered 
> > > softirqs embedded in random task contexts as a workaround for 
> > > that.
> > 
> > The other thing that the IRQ-triggered softirqs do is to get the 
> > callbacks invoked in cases where a CPU-bound user thread is never 
> > context switching.
> 
> Yeah - but this workload didnt have that.
> 
> > Of course, one alternative might be to set_need_resched() to force 
> > entry into the scheduler as needed.
> 
> No need for that: we can just do the callback not in softirq but in 
> regular syscall context in that case, in the return-to-userspace 
> notifier. (see TIF_USER_RETURN_NOTIFY and the USER_RETURN_NOTIFIER 
> facility)
> 
> Abusing a facility like setting need_resched artificially will 
> generally cause trouble.

If the task enqueued callbacks in the kernel, thus started a new grace period,
it might return to userspace before every CPUs have completed that grace period,
and you need that full completion to happen before invoking the callbacks.

I think you need to keep the tick in such case because you can't count on
the other CPUs to handle that completion as they may be all idle.

So when you resume to userspace and you started a GP, either you find another
CPU to handle the GP completion and callbacks executions, or you keep the tick
until you are done.

^ permalink raw reply

* Re: [PATCH 09/11] xen/xenbus: use printk_ratelimited() instead of printk_ratelimit()
From: Jeremy Fitzhardinge @ 2011-06-16 21:00 UTC (permalink / raw)
  To: Manuel Zerpies
  Cc: Jeremy Fitzhardinge, Konrad Rzeszutek Wilk, xen-devel,
	virtualization, linux-kernel, christian.dietrich
In-Reply-To: <d2bc569719b3b1d8271d1f4b2c4080bbc7527e04.1308142053.git.manuel.f.zerpies@ww.stud.uni-erlangen.de>

On 06/16/2011 05:14 AM, Manuel Zerpies wrote:
> Since printk_ratelimit() shouldn't be used anymore (see comment in
> include/linux/printk.h), replace it with printk_ratelimited()
>
Looks OK to me, but please fix the indentation of the rest of the
statement to match.

Thanks,
    J

> Signed-off-by: Manuel Zerpies <manuel.f.zerpies@ww.stud.uni-erlangen.de>
> ---
>  drivers/xen/xenbus/xenbus_xs.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
> index 5534690..4055858 100644
> --- a/drivers/xen/xenbus/xenbus_xs.c
> +++ b/drivers/xen/xenbus/xenbus_xs.c
> @@ -44,6 +44,7 @@
>  #include <linux/rwsem.h>
>  #include <linux/module.h>
>  #include <linux/mutex.h>
> +#include <linux/ratelimit.h>
>  #include <xen/xenbus.h>
>  #include "xenbus_comms.h"
>  
> @@ -270,8 +271,7 @@ static void *xs_talkv(struct xenbus_transaction t,
>  	}
>  
>  	if (msg.type != type) {
> -		if (printk_ratelimit())
> -			printk(KERN_WARNING
> +		`printk_ratelimited(KERN_WARNING
>  			       "XENBUS unexpected type [%d], expected [%d]\n",
>  			       msg.type, type);
>  		kfree(ret);


^ permalink raw reply

* Re: [PATCH 09/11] xen/xenbus: use printk_ratelimited() instead of printk_ratelimit()
From: Jeremy Fitzhardinge @ 2011-06-16 21:00 UTC (permalink / raw)
  To: Manuel Zerpies
  Cc: Jeremy Fitzhardinge, Konrad Rzeszutek Wilk, linux-kernel,
	virtualization, christian.dietrich, xen-devel
In-Reply-To: <d2bc569719b3b1d8271d1f4b2c4080bbc7527e04.1308142053.git.manuel.f.zerpies@ww.stud.uni-erlangen.de>

On 06/16/2011 05:14 AM, Manuel Zerpies wrote:
> Since printk_ratelimit() shouldn't be used anymore (see comment in
> include/linux/printk.h), replace it with printk_ratelimited()
>
Looks OK to me, but please fix the indentation of the rest of the
statement to match.

Thanks,
    J

> Signed-off-by: Manuel Zerpies <manuel.f.zerpies@ww.stud.uni-erlangen.de>
> ---
>  drivers/xen/xenbus/xenbus_xs.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
> index 5534690..4055858 100644
> --- a/drivers/xen/xenbus/xenbus_xs.c
> +++ b/drivers/xen/xenbus/xenbus_xs.c
> @@ -44,6 +44,7 @@
>  #include <linux/rwsem.h>
>  #include <linux/module.h>
>  #include <linux/mutex.h>
> +#include <linux/ratelimit.h>
>  #include <xen/xenbus.h>
>  #include "xenbus_comms.h"
>  
> @@ -270,8 +271,7 @@ static void *xs_talkv(struct xenbus_transaction t,
>  	}
>  
>  	if (msg.type != type) {
> -		if (printk_ratelimit())
> -			printk(KERN_WARNING
> +		`printk_ratelimited(KERN_WARNING
>  			       "XENBUS unexpected type [%d], expected [%d]\n",
>  			       msg.type, type);
>  		kfree(ret);

^ permalink raw reply

* Re: [lm-sensors] Gigabyte GA-D525 core temps N/A?
From: Jean Delvare @ 2011-06-16 21:00 UTC (permalink / raw)
  To: lm-sensors
In-Reply-To: <12337942.277431308248481343.JavaMail.defaultUser@defaultHost>

[-- Attachment #1: Type: text/plain, Size: 1368 bytes --]

On Thu, 16 Jun 2011 13:27:54 -0700, Guenter Roeck wrote:
> On Thu, Jun 16, 2011 at 04:23:44PM -0400, Guenter Roeck wrote:
> > On Thu, Jun 16, 2011 at 04:06:10PM -0400, everythingsfree@lineone.net wrote:
> > > Thanks Guenter & Jean for the replies.
> > > 
> > > I found this web page with some 
> > > info and was following that (but just used the Makefile as downloaded):
> > > 
> > > 
> > > https://wiki.ubuntu.com/CoreTemp
> > > That checked and updated a few things 
> > > plus downloaded other (it covered everything Guenter had suggested) but 
> > > I still get errors:
> > > 
> > [ ... ]
> > > I 
> > > would have assumed that 'MSR_IA32_TEMPERATURE_TARGET' would be defined 
> > > in a header file and that that would be in the 'linux-headers-2.6.32-24-
> > > server' package that was downloaded, perhaps not?
> > > 
> > > Any suggestions?  
> > > I'll keep looking on-line...
> > 
> > The build worked for me with linux-headers-2.6.32-25-server.
> > Can you update your system to the latest kernel version and try again ?
> > It should be 2.6.32-32 as far as I can see.
> > 
> Sorry, I got that wrong; it was 2.6.35-25, not 2.6.32-25.
> 
> Wel'll have to add the missing defines manually. I'll send you an update later tonight.

I've attached my compatibility patch for your reference. But it's
probably easier for Dave to just use my driver.

-- 
Jean Delvare

[-- Attachment #2: support-older-kernels.patch --]
[-- Type: text/x-patch, Size: 1437 bytes --]

---
 coretemp.c |   20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

--- coretemp.orig/coretemp.c	2011-06-06 11:38:05.000000000 +0200
+++ coretemp/coretemp.c	2011-06-06 14:50:10.000000000 +0200
@@ -36,9 +36,21 @@
 #include <linux/cpu.h>
 #include <linux/pci.h>
 #include <linux/smp.h>
+#include <linux/version.h>
 #include <asm/msr.h>
 #include <asm/processor.h>
 
+#ifndef MSR_IA32_TEMPERATURE_TARGET
+#define MSR_IA32_TEMPERATURE_TARGET		0x000001a2
+#endif
+#ifndef MSR_IA32_PACKAGE_THERM_STATUS
+#define MSR_IA32_PACKAGE_THERM_STATUS		0x000001b1
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 34)
+#define sysfs_attr_init(attr)	do {} while(0)
+#endif
+
 #define DRVNAME	"coretemp"
 
 #define BASE_SYSFS_ATTR_NO	2	/* Sysfs Base attr no for coretemp */
@@ -712,7 +724,11 @@ static void __cpuinit get_core_online(un
 	 * sensors. We check this bit only, all the early CPUs
 	 * without thermal sensors will be filtered out.
 	 */
+#ifdef X86_FEATURE_DTS
 	if (!cpu_has(c, X86_FEATURE_DTS))
+#else
+	if (c->cpuid_level < 6 || !(cpuid_eax(0x06) & 0x01))
+#endif
 		return;
 
 	if (!pdev) {
@@ -729,7 +745,11 @@ static void __cpuinit get_core_online(un
 		 * Check whether pkgtemp support is available.
 		 * If so, add interfaces for pkgtemp.
 		 */
+#ifdef X86_FEATURE_PTS
 		if (cpu_has(c, X86_FEATURE_PTS))
+#else
+		if (c->cpuid_level >= 6 && cpuid_eax(0x06) & 0x40)
+#endif
 			coretemp_add_core(cpu, 1);
 	}
 	/*

[-- Attachment #3: Type: text/plain, Size: 153 bytes --]

_______________________________________________
lm-sensors mailing list
lm-sensors@lm-sensors.org
http://lists.lm-sensors.org/mailman/listinfo/lm-sensors

^ permalink raw reply

* Re: [PATCH 4/6] drm/i915: Try harder on multifunction SDVO DDC
From: Chris Wilson @ 2011-06-16 20:58 UTC (permalink / raw)
  To: Rolf Eike Beer; +Cc: intel-gfx
In-Reply-To: <1308256588-8026-4-git-send-email-ajax@redhat.com>

Rolf,

This looks to be the missing ingredient for your board. Can you please
give it a test?
-Chris

On Thu, 16 Jun 2011 16:36:26 -0400, Adam Jackson <ajax@redhat.com> wrote:
> The comment was wrong, bus 0 is the SPD ROM, as we discovered in
> 14571b4 and b108333.
> 
> Signed-off-by: Adam Jackson <ajax@redhat.com>
> ---
>  drivers/gpu/drm/i915/intel_sdvo.c |    7 ++-----
>  1 files changed, 2 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
> index 6d3dd09..193919e 100644
> --- a/drivers/gpu/drm/i915/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> @@ -1313,11 +1313,8 @@ intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
>  	if (edid == NULL && intel_sdvo_multifunc_encoder(intel_sdvo)) {
>  		u8 ddc, saved_ddc = intel_sdvo->ddc_bus;
>  
> -		/*
> -		 * Don't use the 1 as the argument of DDC bus switch to get
> -		 * the EDID. It is used for SDVO SPD ROM.
> -		 */
> -		for (ddc = intel_sdvo->ddc_bus >> 1; ddc > 1; ddc >>= 1) {
> +		/* Skip bus 0, it's the SDVO SPD ROM */
> +		for (ddc = intel_sdvo->ddc_bus >> 1; ddc > 0; ddc >>= 1) {
>  			intel_sdvo->ddc_bus = ddc;
>  			edid = intel_sdvo_get_edid(connector);
>  			if (edid)
> -- 
> 1.7.5.4
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Chris Wilson, Intel Open Source Technology Centre

^ permalink raw reply

* Re: ASUS K53E fails to suspend if ehci_hcd is loaded
From: Alan Stern @ 2011-06-16 20:57 UTC (permalink / raw)
  To: Andrey Rahmatullin; +Cc: Linux-pm mailing list, USB list
In-Reply-To: <20110616201228.GG7253@belkar.wrar.name>

On Fri, 17 Jun 2011, Andrey Rahmatullin wrote:

> On Thu, Jun 16, 2011 at 03:52:02PM -0400, Alan Stern wrote:
> > > When I try to suspend my ASUS K53E laptop, the process hangs after
> > > spinning down the disk unless I unload ehci_hcd. This happens on 2.6.38,
> > > 2.6.39 and 3.0-rc3+. Some details are at
> > > https://bugzilla.kernel.org/show_bug.cgi?id=37632
> > > What additional info can I provide to help fix this if this is possible?
> > Set CONFIG_USB_DEBUG=y and boot with "no_console_suspend" on the 
> > command line.  What appears on the console when the system is hung?
> 
> PM: Entering mem sleep
> usb usb2: usb auto-resume
> sd blah-blah syncing cache
> ehci_hcd 0000:00:1d.0: resume root hub
> usb 1-1.1: usb suspend
> sd blah-blah stopping disk
> hub 1-1:1.0: hub_suspend
> usb 1-1: unlink qh256-0001/ffff88013b411000 start 1 [1/0 us]
> usb 1-1: usb suspend
> 
> 
> and that's all.

Okay, the next step is to try and find out exactly where the ehci 
suspend procedure is hanging.  The patch below adds a bunch of 
printouts at various spots throughout the procedure.  Let's see what 
shows up.

Alan Stern


 drivers/usb/host/ehci-hub.c |    9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Index: usb-3.0/drivers/usb/host/ehci-hub.c
===================================================================
--- usb-3.0.orig/drivers/usb/host/ehci-hub.c
+++ usb-3.0/drivers/usb/host/ehci-hub.c
@@ -208,7 +208,7 @@ static int ehci_bus_suspend (struct usb_
 	int			mask;
 	int			changed;
 
-	ehci_dbg(ehci, "suspend root hub\n");
+	ehci_info(ehci, "suspend root hub\n");
 
 	if (time_before (jiffies, ehci->next_statechange))
 		msleep(5);
@@ -216,6 +216,7 @@ static int ehci_bus_suspend (struct usb_
 	del_timer_sync(&ehci->iaa_watchdog);
 
 	spin_lock_irq (&ehci->lock);
+ehci_info(ehci, "A\n");
 
 	/* Once the controller is stopped, port resumes that are already
 	 * in progress won't complete.  Hence if remote wakeup is enabled
@@ -242,6 +243,7 @@ static int ehci_bus_suspend (struct usb_
 	}
 	ehci->command = ehci_readl(ehci, &ehci->regs->command);
 	ehci_work(ehci);
+ehci_info(ehci, "B\n");
 
 	/* Unlike other USB host controller types, EHCI doesn't have
 	 * any notion of "global" or bus-wide suspend.  The driver has
@@ -285,6 +287,7 @@ static int ehci_bus_suspend (struct usb_
 			changed = 1;
 		}
 	}
+ehci_info(ehci, "C\n");
 
 	if (changed && ehci->has_hostpc) {
 		spin_unlock_irq(&ehci->lock);
@@ -306,6 +309,7 @@ static int ehci_bus_suspend (struct usb_
 					"succeeded" : "failed");
 		}
 	}
+ehci_info(ehci, "D\n");
 
 	/* Apparently some devices need a >= 1-uframe delay here */
 	if (ehci->bus_suspended)
@@ -314,6 +318,7 @@ static int ehci_bus_suspend (struct usb_
 	/* turn off now-idle HC */
 	ehci_halt (ehci);
 	hcd->state = HC_STATE_SUSPENDED;
+ehci_info(ehci, "E\n");
 
 	if (ehci->reclaim)
 		end_unlink_async(ehci);
@@ -324,6 +329,7 @@ static int ehci_bus_suspend (struct usb_
 		mask &= ~STS_PCD;
 	ehci_writel(ehci, mask, &ehci->regs->intr_enable);
 	ehci_readl(ehci, &ehci->regs->intr_enable);
+ehci_info(ehci, "F\n");
 
 	ehci->next_statechange = jiffies + msecs_to_jiffies(10);
 	spin_unlock_irq (&ehci->lock);
@@ -332,6 +338,7 @@ static int ehci_bus_suspend (struct usb_
 	 * want, and so we must delete any pending watchdog timer events.
 	 */
 	del_timer_sync(&ehci->watchdog);
+ehci_info(ehci, "G\n");
 	return 0;
 }
 

^ permalink raw reply

* nilfs_cleanerd doesn't get started when /etc/mtab is a symlink
From: Eric Sandeen @ 2011-06-16 20:57 UTC (permalink / raw)
  To: linux-nilfs-u79uwXL29TY76Z2rM5mHXA

https://bugzilla.redhat.com/show_bug.cgi?id=701735

From the bug:

> # mount -t nilfs2 /dev/nbd1 /media/fedora/src
> mount.nilfs2: cannot modify /etc/mtab.
> Please remount the partition with -f option after making /etc/mtab writable.
> nilfs_cleanerd not started
> 
> But /etc/mtab is now a symlink, which just exists for the benefit of legacy
> code which expects to be able to read it.

Any suggestions?  (/etc/mtab is now a symlink to /proc/partitions)

Thanks,
-Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* [PATCH v2] Add ability to invoke fallocate() FALLOC_FL_KEEP_SIZE.
From: Eric Gouriou @ 2011-06-16 20:57 UTC (permalink / raw)
  To: Jens Axboe; +Cc: fio, Nauman Rafique, Daniel Ehrenberg, Eric Gouriou
In-Reply-To: <1308080427-31011-1-git-send-email-egouriou@google.com>

Linux offers fallocate() and the FALLOC_FL_KEEP_SIZE option as
an alternative to posix_fallocate(). When FALLOC_FL_KEEP_SIZE is
specified for an falloc request going beyond the end of the file,
the requested blocks get preallocated without changing the apparent
size of the file. This is is a commonly recommended use of fallocate()
for workloads performing append writes.

This patch modifies the fallocate option from a boolean option
to a string option accepting none/posix/keep/0/1. 'keep' is only
made available on systems where FALLOC_FL_KEEP_SIZE is available
(i.e., Linux at this time). If specified, fallocate() is used
with FALLOC_FL_KEEP_SIZE set. 'none' disables pre-allocation while
'posix' uses posix_fallocate(). The default behavior remains unchaned,
i.e., invoking posix_fallocate. The settings '0'/'1' are there to
provide backward compatibility for users who had explicitly set the
boolean option.
---
Hi Jens, all,

This is version 2 of the patch submitted earlier this week. Compared
to the initial version I removed the "fallocate_keep_size" option and,
as suggested, changed "fallocate" to be a string option. I elected
to provide both descriptive and numeric compatibility values for the
old boolean values. Let me know if you disagree with that choice.

I removed the weak version of fallocate(). It is not required at this
point and not having it removed the problem of figuring what semantics
it should have if invoked.

As always, feedback is appreciated.

 Regards - Eric
---
 HOWTO         |   18 +++++++++++++-----
 file.h        |   10 ++++++++++
 filesetup.c   |   44 ++++++++++++++++++++++++++++++++++++--------
 fio.1         |   30 ++++++++++++++++++++++++++----
 fio.h         |    2 +-
 options.c     |   35 ++++++++++++++++++++++++++++++-----
 os/os-linux.h |    1 +
 7 files changed, 117 insertions(+), 23 deletions(-)

diff --git a/HOWTO b/HOWTO
index 69b8cc6..ee899b8 100644
--- a/HOWTO
+++ b/HOWTO
@@ -354,11 +354,19 @@ use_os_rand=bool Fio can either use the random generator supplied by the OS
 		internal generator, which is often of better quality and
 		faster.
 
-fallocate=bool	By default, fio will use fallocate() to advise the system
-		of the size of the file we are going to write. This can be
-		turned off with fallocate=0. May not be available on all
-		supported platforms.  If using ZFS on Solaris this must be
-		set to 0 because ZFS doesn't support it.
+fallocate=str	Whether pre-allocation is performed when laying down files.
+		Accepted values are:
+
+			none		Do not pre-allocate space
+			posix		Pre-allocate via posix_fallocate()
+			keep		Pre-allocate via fallocate() with
+					FALLOC_FL_KEEP_SIZE set
+			0		Backward-compatible alias for 'none'
+			1		Backward-compatible alias for 'posix'
+
+		May not be available on all supported platforms. 'keep' is only
+		available on Linux.If using ZFS on Solaris this must be set to
+		'none' because ZFS doesn't support it. Default: 'posix'.
 
 fadvise_hint=bool By default, fio will use fadvise() to advise the kernel
 		on what IO patterns it is likely to issue. Sometimes you
diff --git a/file.h b/file.h
index 04c0d45..b3ff051 100644
--- a/file.h
+++ b/file.h
@@ -43,6 +43,16 @@ enum {
 };
 
 /*
+ * No pre-allocation when laying down files, or call posix_fallocate(), or
+ * call fallocate() with FALLOC_FL_KEEP_SIZE set.
+ */
+enum fio_fallocate_mode {
+	FIO_FALLOCATE_NONE	= 1,
+	FIO_FALLOCATE_POSIX	= 2,
+	FIO_FALLOCATE_KEEP_SIZE	= 3,
+};
+
+/*
  * Each thread_data structure has a number of files associated with it,
  * this structure holds state information for a single file.
  */
diff --git a/filesetup.c b/filesetup.c
index 799202f..6d8aa7a 100644
--- a/filesetup.c
+++ b/filesetup.c
@@ -13,6 +13,10 @@
 #include "filehash.h"
 #include "os/os.h"
 
+#ifdef FIO_HAVE_LINUX_FALLOCATE
+#include <linux/falloc.h>
+#endif
+
 static int root_warn;
 
 static inline void clear_error(struct thread_data *td)
@@ -67,17 +71,41 @@ static int extend_file(struct thread_data *td, struct fio_file *f)
 	}
 
 #ifdef FIO_HAVE_FALLOCATE
-	if (td->o.fallocate && !td->o.fill_device) {
-		dprint(FD_FILE, "fallocate file %s size %llu\n", f->file_name,
-							f->real_file_size);
-
-		r = posix_fallocate(f->fd, 0, f->real_file_size);
-		if (r > 0) {
-			log_err("fio: posix_fallocate fails: %s\n",
-					strerror(r));
+	if (!td->o.fill_device) {
+		switch (td->o.fallocate_mode) {
+		case FIO_FALLOCATE_NONE:
+			break;
+		case FIO_FALLOCATE_POSIX:
+			dprint(FD_FILE, "posix_fallocate file %s size %llu\n",
+				 f->file_name, f->real_file_size);
+
+			r = posix_fallocate(f->fd, 0, f->real_file_size);
+			if (r > 0) {
+				log_err("fio: posix_fallocate fails: %s\n",
+						strerror(r));
+			}
+			break;
+#ifdef FIO_HAVE_LINUX_FALLOCATE
+		case FIO_FALLOCATE_KEEP_SIZE:
+			dprint(FD_FILE,
+				"fallocate(FALLOC_FL_KEEP_SIZE) "
+				"file %s size %llu\n",
+				f->file_name, f->real_file_size);
+
+			r = fallocate(f->fd, FALLOC_FL_KEEP_SIZE, 0,
+					f->real_file_size);
+			if (r != 0) {
+				td_verror(td, errno, "fallocate");
+			}
+			break;
+#endif /* FIO_HAVE_LINUX_FALLOCATE */
+		default:
+			log_err("fio: unknown fallocate mode: %d\n",
+				td->o.fallocate_mode);
+			assert(0);
 		}
 	}
-#endif
+#endif /* FIO_HAVE_FALLOCATE */
 
 	if (!new_layout)
 		goto done;
diff --git a/fio.1 b/fio.1
index 0ced604..ad5040b 100644
--- a/fio.1
+++ b/fio.1
@@ -220,10 +220,32 @@ offsets, or it can use it's own internal generator (based on Tausworthe).
 Default is to use the internal generator, which is often of better quality and
 faster. Default: false.
 .TP
-.BI fallocate \fR=\fPbool
-By default, fio will use fallocate() to advise the system of the size of the
-file we are going to write. This can be turned off with fallocate=0. May not
-be available on all supported platforms.
+.BI fallocate \fR=\fPstr
+Whether pre-allocation is performed when laying down files. Accepted values
+are:
+.RS
+.RS
+.TP
+.B none
+Do not pre-allocate space.
+.TP
+.B posix
+Pre-allocate via posix_fallocate().
+.TP
+.B keep
+Pre-allocate via fallocate() with FALLOC_FL_KEEP_SIZE set.
+.TP
+.B 0
+Backward-compatible alias for 'none'.
+.TP
+.B 1
+Backward-compatible alias for 'posix'.
+.RE
+.P
+May not be available on all supported platforms. 'keep' is only
+available on Linux. If using ZFS on Solaris this must be set to 'none'
+because ZFS doesn't support it. Default: 'posix'.
+.RE
 .TP
 .BI fadvise_hint \fR=\fPbool
 Disable use of \fIposix_fadvise\fR\|(2) to advise the kernel what I/O patterns
diff --git a/fio.h b/fio.h
index 6ad186f..16866dd 100644
--- a/fio.h
+++ b/fio.h
@@ -248,7 +248,7 @@ struct thread_options {
 	unsigned int file_service_type;
 	unsigned int group_reporting;
 	unsigned int fadvise_hint;
-	unsigned int fallocate;
+	enum fio_fallocate_mode fallocate_mode;
 	unsigned int zero_buffers;
 	unsigned int refill_buffers;
 	unsigned int time_based;
diff --git a/options.c b/options.c
index a9b0534..bd7dc99 100644
--- a/options.c
+++ b/options.c
@@ -1178,12 +1178,37 @@ static struct fio_option options[FIO_MAX_OPTS] = {
 #ifdef FIO_HAVE_FALLOCATE
 	{
 		.name	= "fallocate",
-		.type	= FIO_OPT_BOOL,
-		.off1	= td_var_offset(fallocate),
-		.help	= "Use fallocate() when laying out files",
-		.def	= "1",
-	},
+		.type	= FIO_OPT_STR,
+		.off1	= td_var_offset(fallocate_mode),
+		.help	= "Whether pre-allocation is performed when laying out files",
+		.def	= "posix",
+		.posval	= {
+			  { .ival = "none",
+			    .oval = FIO_FALLOCATE_NONE,
+			    .help = "Do not pre-allocate space",
+			  },
+			  { .ival = "posix",
+			    .oval = FIO_FALLOCATE_POSIX,
+			    .help = "Use posix_fallocate()",
+			  },
+#ifdef FIO_HAVE_LINUX_FALLOCATE
+			  { .ival = "keep",
+			    .oval = FIO_FALLOCATE_KEEP_SIZE,
+			    .help = "Use fallocate(..., FALLOC_FL_KEEP_SIZE, ...)",
+			  },
 #endif
+			  /* Compatibility with former boolean values */
+			  { .ival = "0",
+			    .oval = FIO_FALLOCATE_NONE,
+			    .help = "Alias for 'none'",
+			  },
+			  { .ival = "1",
+			    .oval = FIO_FALLOCATE_POSIX,
+			    .help = "Alias for 'posix'",
+			  },
+		},
+	},
+#endif	/* FIO_HAVE_FALLOCATE */
 	{
 		.name	= "fadvise_hint",
 		.type	= FIO_OPT_BOOL,
diff --git a/os/os-linux.h b/os/os-linux.h
index 70c993b..024ef89 100644
--- a/os/os-linux.h
+++ b/os/os-linux.h
@@ -32,6 +32,7 @@
 #define FIO_HAVE_BLKTRACE
 #define FIO_HAVE_STRSEP
 #define FIO_HAVE_FALLOCATE
+#define FIO_HAVE_LINUX_FALLOCATE
 #define FIO_HAVE_POSIXAIO_FSYNC
 #define FIO_HAVE_PSHARED_MUTEX
 #define FIO_HAVE_CL_SIZE
-- 
1.7.3.1



^ permalink raw reply related

* Re: [RFC] Bluetooth: Add link_type information to the mgmt Connected event
From: Gustavo F. Padovan @ 2011-06-16 20:56 UTC (permalink / raw)
  To: Vinicius Costa Gomes; +Cc: linux-bluetooth
In-Reply-To: <1307745283-12160-1-git-send-email-vinicius.gomes@openbossa.org>

* Vinicius Costa Gomes <vinicius.gomes@openbossa.org> [2011-06-10 19:34:43 -0300]:

> One piece of information that was lost when using the mgmt interface,
> was the type of the connection. Using HCI events we used to know
> the type of the connection based on the type of the event, e.g.
> HCI_LE_Connection_Complete for LE links.
> 
> Signed-off-by: Vinicius Costa Gomes <vinicius.gomes@openbossa.org>
> ---
> 
> Johan,
> 
> From my SM series, the other patch that adds information to the mgmt
> interface is:
> "Bluetooth: Add new structures for supporting SM key distribution"
> from Jun 7.
> 
> Cheers,
> 
> 
>  include/net/bluetooth/hci_core.h |    2 +-
>  include/net/bluetooth/mgmt.h     |    1 +
>  net/bluetooth/hci_event.c        |    4 ++--
>  net/bluetooth/mgmt.c             |    3 ++-
>  4 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/include/net/bluetooth/hci_core.h b/include/net/bluetooth/hci_core.h
> index 404872d..5de3866 100644
> --- a/include/net/bluetooth/hci_core.h
> +++ b/include/net/bluetooth/hci_core.h
> @@ -834,7 +834,7 @@ int mgmt_powered(u16 index, u8 powered);
>  int mgmt_discoverable(u16 index, u8 discoverable);
>  int mgmt_connectable(u16 index, u8 connectable);
>  int mgmt_new_key(u16 index, struct link_key *key, u8 persistent);
> -int mgmt_connected(u16 index, bdaddr_t *bdaddr);
> +int mgmt_connected(u16 index, bdaddr_t *bdaddr, u8 link_type);
>  int mgmt_disconnected(u16 index, bdaddr_t *bdaddr);
>  int mgmt_disconnect_failed(u16 index);
>  int mgmt_connect_failed(u16 index, bdaddr_t *bdaddr, u8 status);
> diff --git a/include/net/bluetooth/mgmt.h b/include/net/bluetooth/mgmt.h
> index 129d4b3..9663f5d 100644
> --- a/include/net/bluetooth/mgmt.h
> +++ b/include/net/bluetooth/mgmt.h
> @@ -239,6 +239,7 @@ struct mgmt_ev_new_key {
>  #define MGMT_EV_CONNECTED		0x000B
>  struct mgmt_ev_connected {
>  	bdaddr_t bdaddr;
> +	__u8 link_type;
>  } __packed;
> 
>  #define MGMT_EV_DISCONNECTED		0x000C
> diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c
> index 620f307..bc3a0b6 100644
> --- a/net/bluetooth/hci_event.c
> +++ b/net/bluetooth/hci_event.c
> @@ -1356,7 +1356,7 @@ static inline void hci_conn_complete_evt(struct hci_dev *hdev, struct sk_buff *s
>  			conn->state = BT_CONFIG;
>  			hci_conn_hold(conn);
>  			conn->disc_timeout = HCI_DISCONN_TIMEOUT;
> -			mgmt_connected(hdev->id, &ev->bdaddr);
> +			mgmt_connected(hdev->id, &ev->bdaddr, conn->type);
>  		} else
>  			conn->state = BT_CONNECTED;
> 
> @@ -2752,7 +2752,7 @@ static inline void hci_le_conn_complete_evt(struct hci_dev *hdev, struct sk_buff
>  		goto unlock;
>  	}
> 
> -	mgmt_connected(hdev->id, &ev->bdaddr);
> +	mgmt_connected(hdev->id, &ev->bdaddr, conn->type);
> 
>  	conn->sec_level = BT_SECURITY_LOW;
>  	conn->handle = __le16_to_cpu(ev->handle);
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index bf8f84e..1373a32 100644
> --- a/net/bluetooth/mgmt.c
> +++ b/net/bluetooth/mgmt.c
> @@ -1942,11 +1942,12 @@ int mgmt_new_key(u16 index, struct link_key *key, u8 persistent)
>  	return err;
>  }
> 
> -int mgmt_connected(u16 index, bdaddr_t *bdaddr)
> +int mgmt_connected(u16 index, bdaddr_t *bdaddr, u8 link_type)
>  {
>  	struct mgmt_ev_connected ev;
> 
>  	bacpy(&ev.bdaddr, bdaddr);
> +	ev.link_type = link_type;
> 
>  	return mgmt_event(MGMT_EV_CONNECTED, index, &ev, sizeof(ev), NULL);
>  }

Seems good to me. Anyone else has comments on it?

	Gustavo

^ permalink raw reply

* Re: tidspbridge: problems executing sample apps
From: Ramirez Luna, Omar @ 2011-06-16 20:56 UTC (permalink / raw)
  To: javier Martin; +Cc: linux-omap
In-Reply-To: <BANLkTinawxhRF2FWBrR=vpfCraM=xLX4mA@mail.gmail.com>

Hi Javier,

On Wed, Jun 15, 2011 at 10:19 AM, javier Martin
<javier.martin@vista-silicon.com> wrote:
> Hi,
>
> 1- If I try prebuilt binaries (both for DSP side and userspace) I get
> an execution error:
...
> DSPNode_GetMessage failed: 0xffffffc2

In this case, sample application is working, however the failures on
get_message are unexpected, it seems this arose when the error codes
were changed and the precompiled binaries where not updated, I'll fix
this, thanks for the heads up.

> 3- If I compile both DSP side and MPU side samples it also gives an
> execution error:
...
> root@beagleboard:/dspbridge# ./ping.out
> DSP device detec[   64.484649] procwrap_detach: deprecated dspbridge ioctl
> ted !!
> DSPNode_Create failed: 0xffffffe3
>
...
> Do you know what combination of DSP bios, TI CGT and xdctools is most
> suitable for using with tidspbridge in kernel 2.6.39?

This is mentioned in the wiki: bios 5.33.04 and cgt tools 6.0.7
http://omapedia.org/wiki/DSPBridge_Project#Initial_environment_setup

This version of the bios already has the xdc tools bundled. BTW I
replied to your gforge query in case it gives any information:
http://bit.ly/laeJFD

I also applied your patch to fix copying the dsp binaries on the build
system, thanks!

Regards,

Omar
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH 6/6] drm/i915: Remove redundant bit shifting from intel_gmbus_set_speed
From: Chris Wilson @ 2011-06-16 20:55 UTC (permalink / raw)
  To: Adam Jackson, intel-gfx
In-Reply-To: <1308256588-8026-6-git-send-email-ajax@redhat.com>

On Thu, 16 Jun 2011 16:36:28 -0400, Adam Jackson <ajax@redhat.com> wrote:
> Signed-off-by: Adam Jackson <ajax@redhat.com>

A GMBUS_RATE_MASK would complete the job.

Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre

^ permalink raw reply

* [PATCH] lscpu: detect VMware hypervisor
From: Stephen Hemminger @ 2011-06-16 20:54 UTC (permalink / raw)
  To: util-linux

Add detection of VMware.
Tested on VMware Workstation 7.1.4
---
 sys-utils/lscpu.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c
index 0d94883..8edf997 100644
--- a/sys-utils/lscpu.c
+++ b/sys-utils/lscpu.c
@@ -66,13 +66,15 @@ enum {
 	HYPER_NONE	= 0,
 	HYPER_XEN,
 	HYPER_KVM,
-	HYPER_MSHV
+	HYPER_MSHV,
+	HYPER_VMWARE
 };
 const char *hv_vendors[] = {
 	[HYPER_NONE]	= NULL,
 	[HYPER_XEN]	= "Xen",
 	[HYPER_KVM]	= "KVM",
-	[HYPER_MSHV]	= "Microsoft"
+	[HYPER_MSHV]	= "Microsoft",
+	[HYPER_VMWARE]  = "VMware"
 };
 
 /* CPU modes */
@@ -511,6 +513,8 @@ read_hypervisor_cpuid(struct lscpu_desc *desc)
 		desc->hyper = HYPER_KVM;
 	else if (!strncmp("Microsoft Hv", hyper_vendor_id, 12))
 		desc->hyper = HYPER_MSHV;
+	else if (!strncmp("VMwareVMware", hyper_vendor_id, 12))
+		desc->hyper = HYPER_VMWARE;
 }
 
 #else	/* ! __x86_64__ */
-- 
1.7.2.5



^ permalink raw reply related

* Re: [PATCH] infiniband-diags: saquery; reuse dump_one_mcmember_record function
From: Hal Rosenstock @ 2011-06-16 20:53 UTC (permalink / raw)
  To: Ira Weiny; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
In-Reply-To: <20110616111024.fde795bc.weiny2-i2BcT+NCU+M@public.gmane.org>

On 6/16/2011 2:10 PM, Ira Weiny wrote:
> -		printf("MCMemberRecord member dump:\n"
> -		       "\t\tMGID....................%s\n"
> -		       "\t\tMlid....................0x%X\n"
> -		       "\t\tPortGid.................%s\n"
> -		       "\t\tScopeState..............0x%X\n"
> -		       "\t\tProxyJoin...............0x%X\n"
> -		       "\t\tNodeDescription.........%s\n",
> -		       inet_ntop(AF_INET6, p_mcmr->mgid.raw, gid_str,
> -				 sizeof gid_str),
> -		       cl_ntoh16(p_mcmr->mlid),
> -		       inet_ntop(AF_INET6, p_mcmr->port_gid.raw,
> -				 gid_str2, sizeof gid_str2),
> -		       p_mcmr->scope_state, p_mcmr->proxy_join, node_name);
> +		dump_one_mcmember_record(data);

This will print more info per MC member with much of it (group related)
repeated. Is there some need for the additional info or is this just for
code reuse ? If it's the latter, I would prefer to not see it change or
add an additional parameter to dump_one_mcmember_record as to the
specific fields to print.

-- Hal

> +		printf("\t\tNodeDescription.........%s\n", node_nam

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* Re: [PATCH 5/6] drm/i915: Delete a misleading comment
From: Chris Wilson @ 2011-06-16 20:53 UTC (permalink / raw)
  To: Adam Jackson, intel-gfx
In-Reply-To: <1308256588-8026-5-git-send-email-ajax@redhat.com>

On Thu, 16 Jun 2011 16:36:27 -0400, Adam Jackson <ajax@redhat.com> wrote:
> It's not wrong, but the text and the code describe different predicates
> and my brain kept stumbling over it.
> 
> Signed-off-by: Adam Jackson <ajax@redhat.com>
> ---
>  drivers/gpu/drm/i915/intel_sdvo.c |    5 +----
>  1 files changed, 1 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
> index 193919e..c2272f7 100644
> --- a/drivers/gpu/drm/i915/intel_sdvo.c
> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
> @@ -1320,10 +1320,7 @@ intel_sdvo_tmds_sink_detect(struct drm_connector *connector)
>  			if (edid)
>  				break;
>  		}
> -		/*
> -		 * If we found the EDID on the other bus,
> -		 * assume that is the correct DDC bus.
> -		 */
> +

How about?

If we foudn the EDID on another bus, presume that is the correct DDC bus
and keep using that bus for future queries. Otherwise, restore the
original value.

>  		if (edid == NULL)
>  			intel_sdvo->ddc_bus = saved_ddc;
>  	}

-- 
Chris Wilson, Intel Open Source Technology Centre

^ permalink raw reply

* [PATCH][TRIVIAL] infiniband-diags/ibqueryerrors.c: Fix typo in help
From: Hal Rosenstock @ 2011-06-16 20:52 UTC (permalink / raw)
  To: Ira Weiny; +Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org


Signed-off-by: Hal Rosenstock <hal-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
---
diff --git a/src/ibqueryerrors.c b/src/ibqueryerrors.c
index 0147d9c..1bba0e0 100644
--- a/src/ibqueryerrors.c
+++ b/src/ibqueryerrors.c
@@ -858,7 +858,7 @@ int main(int argc, char **argv)
 		{"report-port", 'r', 0, NULL,
 		 "report port configuration information"},
 		{"threshold-file", 8, 1, NULL,
-		 "specify an alternate thresold file, default: " DEF_THRES_FILE},
+		 "specify an alternate threshold file, default: " DEF_THRES_FILE},
 		{"GNDN", 'R', 0, NULL,
 		 "(This option is obsolete and does nothing)"},
 		{"data", 2, 0, NULL, "include data counters for ports with errors"},
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related

* LE supported host configuration using management
From: Claudio Takahasi @ 2011-06-16 20:52 UTC (permalink / raw)
  To: BlueZ development

Hi,

We need a way to set the LE supported(host) bit using the management
interface. The question is: create a new command for this purpose only
or there are other adapter initialization settings planned to be
implemented? We could create a generic message passing all settings
once.

Even if the controller supports LE, we need a way to disable LE. The
current interleaved discovery implementation checks the if the
controller LE bit only, a correct implementation should check both:
controller and host bits. BlueZ has an option "EnableLE" in main.conf
used to control if the LE supported host bit should be set or not.

SPEC page 915 describe how this Write_LE_Host_Support command works.

Initially I thought that this bit could interfere/change the firmware
behavior, but it didn't, at least not for the hardwares that we have.
But the manufacturers are recommending to set and check it to avoid
IOP issues in the future.

Comments? New command or a generic management command?

Regards,
Claudio

^ permalink raw reply

* Re: Status of carl9170
From: Christian Lamparter @ 2011-06-16 20:49 UTC (permalink / raw)
  To: Thomas Novin; +Cc: linux-wireless
In-Reply-To: <1308255196.4264.7.camel@thnov-desktop.xyz.lan>

On Thursday 16 June 2011 22:13:16 Thomas Novin wrote:
> When using these to connect to my Ubiquiti Power AP-N I get terrible
> performance. Using another computer with some Broadcom 802.11g chip (b43
> driver) it works OK.
> 
> For example, doing a 100 packet ping towards my LAN gateway and at the
> same time trying to load a webpage.
> 
> --- 10.0.0.254 ping statistics ---
> 100 packets transmitted, 60 received, 40% packet loss, time 99229ms
> rtt min/avg/max/mdev = 0.832/93.193/1264.009/292.193 ms, pipe 2

no problem, here's a ping -c 100 in my setup

--- 192.168.0.254 ping statistics ---
100 packets transmitted, 100 received, 0% packet loss, time 99138ms
rtt min/avg/max/mdev = 1.046/2.190/9.561/1.209 ms

But at least, you could try to disable the 11n cap by loading the module
with noht=1 and the hwcrypt by nohwcrypt=1.

Btw, do you have anything in your dmesg from the driver?

Regards,
	Chr

^ permalink raw reply

* [PATCH 001/001] vlan: don't call ndo_vlan_rx_register on hardware that doesn't have vlan support
From: Antoine Reversat @ 2011-06-16 20:47 UTC (permalink / raw)
  To: netdev

This patch removes the call to ndo_vlan_rx_register if the underlying
device doesn't have hardware support for VLAN.
Signed-off-by: Antoine Reversat <a.reversat@gmail.com>
---
--- linux-2.6.39/net/8021q/vlan.c	2011-05-19 00:06:34.000000000 -0400
+++ linux-2.6.39-fixed/net/8021q/vlan.c	2011-06-16 16:39:25.933742004 -0400
@@ -211,7 +211,7 @@ int register_vlan_dev(struct net_device
 	grp->nr_vlans++;

 	if (ngrp) {
-		if (ops->ndo_vlan_rx_register)
+		if (ops->ndo_vlan_rx_register && (real_dev->features & NETIF_F_HW_VLAN_RX))
 			ops->ndo_vlan_rx_register(real_dev, ngrp);
 		rcu_assign_pointer(real_dev->vlgrp, ngrp);
 	}

^ permalink raw reply


This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.