RE: [PATCH v6 19/34] xlink-core: Add xlink core device tree bindings

2021-04-20 Thread Gross, Mark


> -Original Message-
> From: Dave Hansen 
> Sent: Monday, April 12, 2021 2:33 PM
> To: mgr...@linux.intel.com; markgr...@kernel.org; a...@arndb.de; b...@suse.de;
> damien.lem...@wdc.com; dragan.cve...@xilinx.com;
> gre...@linuxfoundation.org; cor...@lwn.net; palmerdabb...@google.com;
> paul.walms...@sifive.com; peng@nxp.com; robh...@kernel.org;
> shawn...@kernel.org; jassisinghb...@gmail.com
> Cc: linux-kernel@vger.kernel.org; Kelly, Seamus ;
> devicet...@vger.kernel.org
> Subject: Re: [PATCH v6 19/34] xlink-core: Add xlink core device tree bindings
> 
> On 2/12/21 2:22 PM, mgr...@linux.intel.com wrote:
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) # Copyright (c)
> > +Intel Corporation. All rights reserved.
> > +%YAML 1.2
> > +---
> > +$id: "http://devicetree.org/schemas/misc/intel,keembay-xlink.yaml#;
> > +$schema: "http://devicetree.org/meta-schemas/core.yaml#;
> > +
> > +title: Intel Keem Bay xlink
> 
> Is there a specific reason this is dual licensed?  If so, can you please 
> include
> information about the license choice in the next post's cover letter?
> 
> If there is no specific reason for this contribution to be dual licensed, 
> please make it
> GPL-2.0 only.
I will.

I'm just waiting on some testing before making the next post.

Thanks,
--mark


RE: [PATCH v4 29/34] Intel tsens i2c slave driver.

2021-02-01 Thread Gross, Mark


> -Original Message-
> From: Randy Dunlap 
> Sent: Sunday, January 31, 2021 6:14 PM
> To: mgr...@linux.intel.com; markgr...@kernel.org; a...@arndb.de; b...@suse.de;
> damien.lem...@wdc.com; dragan.cve...@xilinx.com;
> gre...@linuxfoundation.org; cor...@lwn.net; palmerdabb...@google.com;
> paul.walms...@sifive.com; peng@nxp.com; robh...@kernel.org;
> shawn...@kernel.org; jassisinghb...@gmail.com
> Cc: linux-kernel@vger.kernel.org; C, Udhayakumar 
> Subject: Re: [PATCH v4 29/34] Intel tsens i2c slave driver.
> 
> On 1/29/21 6:21 PM, mgr...@linux.intel.com wrote:
> > diff --git a/drivers/misc/intel_tsens/Kconfig 
> > b/drivers/misc/intel_tsens/Kconfig
> > index 8b263fdd80c3..be8d27e81864 100644
> > --- a/drivers/misc/intel_tsens/Kconfig
> > +++ b/drivers/misc/intel_tsens/Kconfig
> > @@ -14,6 +14,20 @@ config INTEL_TSENS_LOCAL_HOST
> >   Say Y if using a processor that includes the Intel VPU such as
> >   Keem Bay.  If unsure, say N.
> >
> > +config INTEL_TSENS_I2C_SLAVE
> > +   bool "I2C slave driver for intel tsens"
> > +   depends on INTEL_TSENS_LOCAL_HOST
> > +   depends on I2C=y && I2C_SLAVE
> > +   help
> > + This option enables tsens I2C slave driver.
> 
> Good, it's OK now.
> The repeat v3 and then v4 confused me.

Hmm, I'm confused too.  I should have only sent v4 on Friday.  I'll look over 
my history and logs to see how I could have sent to blasts one or V3 and then 
V4.   Ugh.  Sorry about mixing the V3 and V4 patches in the same batch.

FWIW I make an outgoing directory and forgot to clean out the v3 patches that 
where there from the earlier posting. Resulting in a mixing of the old and 
current patch set. 

I'll write a script to automate the creation of the outgoing directory for next 
time that should correct future screw ups.

I'm very sorry for the noise.

--mark




RE: [PATCH v2 29/34] Intel tsens i2c slave driver.

2021-01-26 Thread Gross, Mark


> -Original Message-
> From: Arnd Bergmann 
> Sent: Monday, January 25, 2021 11:45 PM
> To: mgr...@linux.intel.com
> Cc: Randy Dunlap ; markgr...@kernel.org; Arnd
> Bergmann ; Borislav Petkov ; Damien Le Moal
> ; Dragan Cvetic ; gregkh
> ; Jonathan Corbet ; Leonard
> Crestez ; Palmer Dabbelt
> ; Paul Walmsley ;
> Peng Fan ; Rob Herring ; Shawn
> Guo ; Jassi Brar ; linux-
> ker...@vger.kernel.org; C, Udhayakumar ;
> c...@linux.intel.com
> Subject: Re: [PATCH v2 29/34] Intel tsens i2c slave driver.
> 
> On Tue, Jan 26, 2021 at 12:39 AM mark gross  wrote:
> >
> > On Mon, Jan 11, 2021 at 11:15:06PM -0800, Randy Dunlap wrote:
> > > On 1/8/21 1:25 PM, mgr...@linux.intel.com wrote:
> > > > diff --git a/drivers/misc/intel_tsens/Kconfig
> > > > b/drivers/misc/intel_tsens/Kconfig
> > > > index 8b263fdd80c3..c2138339bd89 100644
> > > > --- a/drivers/misc/intel_tsens/Kconfig
> > > > +++ b/drivers/misc/intel_tsens/Kconfig
> > > > @@ -14,6 +14,20 @@ config INTEL_TSENS_LOCAL_HOST
> > > >   Say Y if using a processor that includes the Intel VPU such as
> > > >   Keem Bay.  If unsure, say N.
> > > >
> > > > +config INTEL_TSENS_I2C_SLAVE
> > > > +   bool "I2C slave driver for intel tsens"
> > >
> > > Why bool instead of tristate?
> > Becuase the I2C driver depends on a file scoped global i2c_plat_data
> > instanciated in the INTELL_TSENS_LOCAL_HOST DRIVER
> > (intel_tsens_thermal.[ch])
> >
> > Udhaya, would you care to comment further?
> 
> > > > +   depends on INTEL_TSENS_LOCAL_HOST
> > > > +   select I2C
> > > > +   select I2C_SLAVE
> 
> Please make this 'depends on I2C=y && I2C_SLAVE' instead of 'select'
> in this case. A random driver should never force-enable another subsystem.
Will do, thanks for the feedback!

--mark





RE: [PATCH v3 02/34] dt-bindings: mailbox: Add Intel VPU IPC mailbox bindings

2021-01-26 Thread Gross, Mark


> -Original Message-
> From: Rob Herring 
> Sent: Tuesday, January 26, 2021 5:45 AM
> To: Mark Gross 
> Cc: markgr...@kernel.org; Arnd Bergmann ; Borislav Petkov
> ; Damien Le Moal ; Dragan Cvetic
> ; Greg Kroah-Hartman
> ; Jonathan Corbet ; Palmer
> Dabbelt ; Paul Walmsley
> ; Peng Fan ; Shawn Guo
> ; Jassi Brar ; linux-
> ker...@vger.kernel.org; Alessandrelli, Daniele
> 
> Subject: Re: [PATCH v3 02/34] dt-bindings: mailbox: Add Intel VPU IPC mailbox
> bindings
> 
> On Mon, Jan 25, 2021 at 11:40 PM  wrote:
> >
> > From: Daniele Alessandrelli 
> >
> > Add bindings for the Intel VPU IPC mailbox driver.
> 
> Sigh. DT list please so it's in my queue and automated checks run.
I'm sorry about that.  
Quick question, should I include the DT-list on just the patches with DT yaml 
or all of the series as its got DT content?

--mark


> 
> > Signed-off-by: Daniele Alessandrelli 
> > ---
> >  .../mailbox/intel,vpu-ipc-mailbox.yaml| 69 +++
> >  MAINTAINERS   |  6 ++
> >  2 files changed, 75 insertions(+)
> >  create mode 100644
> > Documentation/devicetree/bindings/mailbox/intel,vpu-ipc-mailbox.yaml
> >
> > diff --git
> > a/Documentation/devicetree/bindings/mailbox/intel,vpu-ipc-mailbox.yaml
> > b/Documentation/devicetree/bindings/mailbox/intel,vpu-ipc-mailbox.yaml
> > new file mode 100644
> > index ..923a6d619a64
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/mailbox/intel,vpu-ipc-mailbox.
> > +++ yaml
> > @@ -0,0 +1,69 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) # Copyright
> > +(c) 2020 Intel Corporation %YAML 1.2
> > +---
> > +$id: "http://devicetree.org/schemas/mailbox/intel,vpu-ipc-mailbox.yaml#;
> > +$schema: "http://devicetree.org/meta-schemas/core.yaml#;
> > +
> > +title: Intel VPU IPC mailbox
> > +
> > +maintainers:
> > +  - Daniele Alessandrelli 
> > +
> > +description: |
> > +  Intel VPU SoCs like Keem Bay have hardware FIFOs to enable
> > +Inter-Processor
> > +  Communication (IPC) between the CPU and the VPU.
> > +
> > +  Specifically, there is one HW FIFO for the CPU (aka Application
> > + Processor -
> > +  AP) and one for the VPU. Each FIFO can hold 128 entries of 32 bits
> > + each. A  "FIFO-not-empty" interrupt is raised every time there is at
> > + least a message  in the FIFO. The CPU FIFO raises interrupts to the
> > + CPU, while the VPU FIFO  raises interrupts to VPU. When the CPU
> > + wants to send a message to the VPU it  writes to the VPU FIFO,
> > + similarly, when the VPU want to send a message to the  CPU, it writes to 
> > the
> CPU FIFO.
> > +
> > +  Refer to ./mailbox.txt for generic information about mailbox
> > + device-tree  bindings.
> > +
> > +properties:
> > +  compatible:
> > +const: intel,vpu-ipc-mailbox
> > +
> > +  reg:
> > +items:
> > +  - description: The CPU FIFO registers
> > +  - description: The VPU FIFO registers
> > +
> > +  reg-names:
> > +items:
> > +  - const: cpu_fifo
> > +  - const: vpu_fifo
> > +
> > +  interrupts:
> > +items:
> > +  - description: CPU FIFO-not-empty interrupt
> > +
> > +  "#mbox-cells":
> > +const: 1
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +  - reg-names
> > +  - interrupts
> > +  - "#mbox-cells"
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +#include 
> > +#include 
> > +vpu_ipc_mailbox@203300f0 {
> > +compatible = "intel,vpu-ipc-mailbox";
> > +#mbox-cells = <1>;
> > +reg = <0x203300f0 0x310>,
> > +  <0x208200f0 0x310>;
> > +reg-names = "cpu_fifo", "vpu_fifo";
> > +interrupts = ;
> > +};
> > diff --git a/MAINTAINERS b/MAINTAINERS index
> > 992fe3b0900a..2b82526a00dc 100644
> > --- a/MAINTAINERS
> > +++ b/MAINTAINERS
> > @@ -9181,6 +9181,12 @@ L:   platform-driver-...@vger.kernel.org
> >  S: Maintained
> >  F: drivers/platform/x86/intel-vbtn.c
> >
> > +INTEL VPU IPC MAILBOX
> > +M: Daniele Alessandrelli 
> > +M: Mark Gross 
> > +S: Supported
> > +F: Documentation/devicetree/bindings/mailbox/intel,vpu-ipc-mailbox.yaml
> > +
> >  INTEL WIRELESS 3945ABG/BG, 4965AGN (iwlegacy)
> >  M: Stanislaw Gruszka 
> >  L: linux-wirel...@vger.kernel.org
> > --
> > 2.17.1
> >


RE: [PATCH 03/22] keembay-ipc: Add Keem Bay IPC module

2020-12-11 Thread Gross, Mark



> -Original Message-
> From: Greg KH 
> Sent: Friday, December 11, 2020 12:23 AM
> To: Daniele Alessandrelli 
> Cc: Alessandrelli, Daniele ;
> mgr...@linux.intel.com; markgr...@kernel.org; a...@arndb.de;
> robh...@kernel.org; linux-kernel@vger.kernel.org; sumit.sem...@linaro.org;
> christian.koe...@amd.com
> Subject: Re: [PATCH 03/22] keembay-ipc: Add Keem Bay IPC module
> 
> On Thu, Dec 10, 2020 at 06:38:24PM +, Daniele Alessandrelli wrote:
> > On Tue, 2020-12-08 at 20:48 +0100, Greg KH wrote:
> > > On Tue, Dec 08, 2020 at 06:59:09PM +, Daniele Alessandrelli wrote:
> > > > Hi Greg,
> > > >
> > > > Thanks for your feedback.
> > > >
> > > > On Wed, 2020-12-02 at 07:19 +0100, Greg KH wrote:
> > > > > On Tue, Dec 01, 2020 at 02:34:52PM -0800, mgr...@linux.intel.com
> wrote:
> > > > > > From: Daniele Alessandrelli 
> > > > > >
> > > > > > On the Intel Movidius SoC code named Keem Bay, communication
> > > > > > between the Computing Sub-System (CSS), i.e., the CPU, and the
> > > > > > Multimedia Sub-System (MSS), i.e., the VPU is enabled by the
> > > > > > Keem Bay Inter-Processor Communication (IPC) mechanism.
> > > > > >
> > > > > > Add the driver for using Keem Bay IPC from within the Linux Kernel.
> > > > > >
> > > > > > Keem Bay IPC uses the following terminology:
> > > > > >
> > > > > > - Node:A processing entity that can use the IPC to communicate;
> > > > > >currently, we just have two nodes, CPU (CSS) and VPU (MSS).
> > > > > >
> > > > > > - Link:Two nodes that can communicate over IPC form an IPC link
> > > > > >(currently, we just have one link, the one between the CPU
> > > > > >and VPU).
> > > > > >
> > > > > > - Channel: An IPC link can provide multiple IPC channels. IPC 
> > > > > > channels
> > > > > >allow communication multiplexing, i.e., the same IPC link can
> > > > > >be used by different applications for different
> > > > > >communications. Each channel is identified by a channel ID,
> > > > > >which must be unique within a single IPC link. Channels are
> > > > > >divided in two categories, High-Speed (HS) channels and
> > > > > >General-Purpose (GP) channels. HS channels have higher
> > > > > >priority over GP channels.
> > > > > >
> > > > > > Keem Bay IPC mechanism is based on shared memory and hardware
> FIFOs.
> > > > > > Both the CPU and the VPU have their own hardware FIFO. When
> > > > > > the CPU wants to send an IPC message to the VPU, it writes to
> > > > > > the VPU FIFO (MSS FIFO); similarly, when MSS wants to send an
> > > > > > IPC message to the CPU, it writes to the CPU FIFO (CSS FIFO).
> > > > > >
> > > > > > A FIFO entry is simply a pointer to an IPC buffer (aka IPC
> > > > > > header) stored in a portion of memory shared between the CPU and
> the VPU.
> > > > > > Specifically, the FIFO entry contains the (VPU) physical
> > > > > > address of the IPC buffer being transferred.
> > > > > >
> > > > > > In turn, the IPC buffer contains the (VPU) physical address of
> > > > > > the payload (which must be located in shared memory too) as
> > > > > > well as other information (payload size, IPC channel ID, etc.).
> > > > > >
> > > > > > Each IPC node instantiates a pool of IPC buffers from its own
> > > > > > IPC buffer memory region. When instantiated, IPC buffers are
> > > > > > marked as free. When the node needs to send an IPC message, it
> > > > > > gets the first free buffer it finds (from its own pool), marks
> > > > > > it as allocated (used), and puts its physical address into the
> > > > > > IPC FIFO of the destination node. The destination node (which
> > > > > > is notified by an interrupt when there are entries pending in
> > > > > > its FIFO) extract the physical address from the FIFO and
> > > > > > process the IPC buffer, marking it as free once done (so that the 
> > > > > > sender
> can reuse the buffer).
> > > > >
> > > > > Any reason you can't use the dmabuf interface for these memory
> > > > > buffers you are creating and having to manage "by hand"?  I
> > > > > thought that was what the kernel was wanting to unify on such
> > > > > that individual drivers/subsystems didn't have to do this on their 
> > > > > own.
> > > >
> > > > My understanding is that the dmabuf interface is used to share DMA
> > > > buffers across different drivers, while these buffers are used
> > > > only internally to the IPC driver (and exchanged only with the VPU
> > > > firmware). They basically are packet headers that are sent to the VPU.
> > >
> > > There's no reason you couldn't use these to share your buffers
> > > "internally" as well, because you have the same lifetime rules and
> > > accounting and all other sorts of things you have to handle, right?
> > > Why rewrite something like this when you should take advantage of
> > > common code instead?
> >
> > I looked at dma-buf again, but I'm still failing to see how we can use
> > it in this driver :/
> >
> > The problem 

RE: [PATCH 16/22] xlink-ipc: Add xlink ipc driver

2020-12-11 Thread Gross, Mark



> -Original Message-
> From: gre...@linuxfoundation.org 
> Sent: Friday, December 11, 2020 4:14 AM
> To: Kelly, Seamus 
> Cc: Joe Perches ; mgr...@linux.intel.com;
> markgr...@kernel.org; a...@arndb.de; b...@suse.de;
> damien.lem...@wdc.com; dragan.cve...@xilinx.com; cor...@lwn.net;
> leonard.cres...@nxp.com; palmerdabb...@google.com;
> paul.walms...@sifive.com; peng@nxp.com; robh...@kernel.org;
> shawn...@kernel.org; linux-kernel@vger.kernel.org; linux-
> d...@vger.kernel.org; Ryan Carnaghi 
> Subject: Re: [PATCH 16/22] xlink-ipc: Add xlink ipc driver
> 
> On Fri, Dec 11, 2020 at 11:33:02AM +, Kelly, Seamus wrote:
> > This e-mail and any attachments may contain confidential material for
> > the sole use of the intended recipient(s). Any review or distribution
> > by others is strictly prohibited. If you are not the intended
> > recipient, please contact the sender and delete all copies.

Must be something Seamus is using that knows when emails go outside.  I would 
have caught this on our internal mock reviews otherwise.

> 
> Now deleted!
> 
> This footer is incompatible with Linux kernel development, please remove it in
> order for us to read your emails and do anything with them.
Yes, I know.

> 
> I can't believe that Intel still has this problem, after all of these years...
I'll add a warning about this in my training collateral and have all engineers 
I work with on this type of upstreaming send a test email to 
markgr...@kernel.org so I can see if they have such legal clauses appended to 
out-bound email that is not visible to internal recipients.  I'll fix this.

Sorry, 

--mark


RE: [PATCH 03/22] keembay-ipc: Add Keem Bay IPC module

2020-12-05 Thread Gross, Mark



> -Original Message-
> From: Greg KH 
> Sent: Saturday, December 5, 2020 12:40 AM
> To: mark gross 
> Cc: markgr...@kernel.org; a...@arndb.de; b...@suse.de;
> damien.lem...@wdc.com; dragan.cve...@xilinx.com; cor...@lwn.net;
> leonard.cres...@nxp.com; palmerdabb...@google.com;
> paul.walms...@sifive.com; peng@nxp.com; robh...@kernel.org;
> shawn...@kernel.org; linux-kernel@vger.kernel.org; Alessandrelli, Daniele
> ; Iyer, Sundar 
> Subject: Re: [PATCH 03/22] keembay-ipc: Add Keem Bay IPC module
> 
> On Fri, Dec 04, 2020 at 07:35:17PM -0800, mark gross wrote:
> > On Wed, Dec 02, 2020 at 08:01:18PM +0100, Greg KH wrote:
> > > On Wed, Dec 02, 2020 at 09:42:00AM -0800, mark gross wrote:
> > > > On Wed, Dec 02, 2020 at 07:16:20AM +0100, Greg KH wrote:
> > > > > On Tue, Dec 01, 2020 at 02:34:52PM -0800, mgr...@linux.intel.com 
> > > > > wrote:
> > > > > > --- a/MAINTAINERS
> > > > > > +++ b/MAINTAINERS
> > > > > > @@ -8955,6 +8955,14 @@ M:   Deepak Saxena 
> > > > > >  S: Maintained
> > > > > >  F: drivers/char/hw_random/ixp4xx-rng.c
> > > > > >
> > > > > > +INTEL KEEM BAY IPC DRIVER
> > > > > > +M: Daniele Alessandrelli 
> > > > > > +M: Mark Gross 
> > > > > > +S: Maintained
> > > > > > +F: Documentation/devicetree/bindings/soc/intel/intel,keembay-
> ipc.yaml
> > > > > > +F: drivers/soc/intel/keembay-ipc.c
> > > > > > +F: include/linux/soc/intel/keembay-ipc.h
> > > > >
> > > > > Sad that Intel is not going to actually pay you all to do this
> > > > > maintenance work for a brand new subsystem you are wanting to
> > > > > add to the tree :(
> > > > I thought adding my name to these maintainer items would help with
> > > > continuity as the individual engineers tend to move on to other things 
> > > > over
> time.
> > > >
> > > > While I'm paid for a number of things at intel this is one of
> > > > them.  My role is as stable as I choose it to be at the point I'm
> > > > at in my Intel career and the business unit I'm now part of.  We
> > > > can leave my name off if that would be better.
> > > >
> > > > Even if I'm not a VPU IP domain expert like Daniele is I can still
> > > > chase down the experts as needed after Daniele grows into other things 
> > > > over
> time.
> > >
> > > I'm not objecting to your, or anyone else's name on this at all.
> > > I'm just asking about Intel's support for this new codebase being added.
> > > Having a new subsystem from a major company and not have someone
> > > paid to actually maintain it seems really odd to me.
> > >
> > > That's all.  If that's Intel's stance, that's fine, just wanted to
> > > clarify it is correct as I know some people at Intel have been
> > > confused recently about just what the S: field means.
> > I've been following up on whether the status field should be
> > "Supported" or "Maintained" at this time.  For this current
> > instantiation of the VPU enabling under review here I think Maintained
> > most appropriate.  There are a good number of people who look after it.
> >
> > However; I have learned that the instantiations of the VPU after keem
> > bay and its follow on SoC will include an evolution of this stack and
> > between now and when those get close to landing that evolved version will
> become "Supported".
> >
> > Given this, would it be more appropriate to put this stack into
> > staging for a while?
> 
> drivers/staging/ is for code that for some reason is not good enough to be 
> merged
> to the "right" place in the kernel tree, and you need community help to get it
> cleaned up because you can not do it yourself.
> 
> Is that the case here?  If not, then no, it should not go into 
> drivers/staging/.
That is not the case here.  Lets proceed as we are on this then.

Thanks!

--mark


RE: [PATCH] tlclk: lean an indentation issue, remove extraneous tabs

2018-10-30 Thread Gross, Mark
Looks cool to me.

Reviewed-by 

--mark

> -Original Message-
> From: Colin King [mailto:colin.k...@canonical.com]
> Sent: Tuesday, October 30, 2018 4:57 AM
> To: Gross, Mark ; Arnd Bergmann ;
> Greg Kroah-Hartman 
> Cc: kernel-janit...@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: [PATCH] tlclk: lean an indentation issue, remove extraneous tabs
> 
> From: Colin Ian King 
> 
> Trivial fix to clean up an indentation issue, remove tabs
> 
> Signed-off-by: Colin Ian King 
> ---
>  drivers/char/tlclk.c | 84 ++--
>  1 file changed, 42 insertions(+), 42 deletions(-)
> 
> diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c index
> 8eeb4190207d..a0f2c0506176 100644
> --- a/drivers/char/tlclk.c
> +++ b/drivers/char/tlclk.c
> @@ -506,27 +506,27 @@ static ssize_t
> store_select_amcb2_transmit_clock(struct device *d,
> 
>   val = (unsigned char)tmp;
>   spin_lock_irqsave(_lock, flags);
> - if ((val == CLK_8kHz) || (val == CLK_16_384MHz)) {
> - SET_PORT_BITS(TLCLK_REG3, 0xc7, 0x28);
> - SET_PORT_BITS(TLCLK_REG1, 0xfb, ~val);
> - } else if (val >= CLK_8_592MHz) {
> - SET_PORT_BITS(TLCLK_REG3, 0xc7, 0x38);
> - switch (val) {
> - case CLK_8_592MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 2);
> - break;
> - case CLK_11_184MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 0);
> - break;
> - case CLK_34_368MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 3);
> - break;
> - case CLK_44_736MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 1);
> - break;
> - }
> - } else
> - SET_PORT_BITS(TLCLK_REG3, 0xc7, val << 3);
> + if ((val == CLK_8kHz) || (val == CLK_16_384MHz)) {
> + SET_PORT_BITS(TLCLK_REG3, 0xc7, 0x28);
> + SET_PORT_BITS(TLCLK_REG1, 0xfb, ~val);
> + } else if (val >= CLK_8_592MHz) {
> + SET_PORT_BITS(TLCLK_REG3, 0xc7, 0x38);
> + switch (val) {
> + case CLK_8_592MHz:
> + SET_PORT_BITS(TLCLK_REG0, 0xfc, 2);
> + break;
> + case CLK_11_184MHz:
> + SET_PORT_BITS(TLCLK_REG0, 0xfc, 0);
> + break;
> + case CLK_34_368MHz:
> + SET_PORT_BITS(TLCLK_REG0, 0xfc, 3);
> + break;
> + case CLK_44_736MHz:
> + SET_PORT_BITS(TLCLK_REG0, 0xfc, 1);
> + break;
> + }
> + } else
> + SET_PORT_BITS(TLCLK_REG3, 0xc7, val << 3);
> 
>   spin_unlock_irqrestore(_lock, flags);
> 
> @@ -548,27 +548,27 @@ static ssize_t
> store_select_amcb1_transmit_clock(struct device *d,
> 
>   val = (unsigned char)tmp;
>   spin_lock_irqsave(_lock, flags);
> - if ((val == CLK_8kHz) || (val == CLK_16_384MHz)) {
> - SET_PORT_BITS(TLCLK_REG3, 0xf8, 0x5);
> - SET_PORT_BITS(TLCLK_REG1, 0xfb, ~val);
> - } else if (val >= CLK_8_592MHz) {
> - SET_PORT_BITS(TLCLK_REG3, 0xf8, 0x7);
> - switch (val) {
> - case CLK_8_592MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 2);
> - break;
> - case CLK_11_184MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 0);
> - break;
> - case CLK_34_368MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 3);
> - break;
> - case CLK_44_736MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 1);
> - break;
> - }
> - } else
> - SET_PORT_BITS(TLCLK_REG3, 0xf8, val);
> + if ((val == CLK_8kHz) || (val == CLK_16_384MHz)) {
> + SET_PORT_BITS(TLCLK_REG3, 0xf8, 0x5);
> + SET_PORT_BITS(TLCLK_REG1, 0xfb, ~val);
> + } else if (val >= CLK_8_592MHz) {
> + SET_PORT_BITS(TLCLK_REG3, 0xf8, 0x7);
> + switch (val) {
> + case CLK_8_592MHz:
> + SET_PORT_BITS(TLCLK_REG0, 0xfc, 2);
> + break;
> 

RE: [PATCH] tlclk: lean an indentation issue, remove extraneous tabs

2018-10-30 Thread Gross, Mark
Looks cool to me.

Reviewed-by 

--mark

> -Original Message-
> From: Colin King [mailto:colin.k...@canonical.com]
> Sent: Tuesday, October 30, 2018 4:57 AM
> To: Gross, Mark ; Arnd Bergmann ;
> Greg Kroah-Hartman 
> Cc: kernel-janit...@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: [PATCH] tlclk: lean an indentation issue, remove extraneous tabs
> 
> From: Colin Ian King 
> 
> Trivial fix to clean up an indentation issue, remove tabs
> 
> Signed-off-by: Colin Ian King 
> ---
>  drivers/char/tlclk.c | 84 ++--
>  1 file changed, 42 insertions(+), 42 deletions(-)
> 
> diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c index
> 8eeb4190207d..a0f2c0506176 100644
> --- a/drivers/char/tlclk.c
> +++ b/drivers/char/tlclk.c
> @@ -506,27 +506,27 @@ static ssize_t
> store_select_amcb2_transmit_clock(struct device *d,
> 
>   val = (unsigned char)tmp;
>   spin_lock_irqsave(_lock, flags);
> - if ((val == CLK_8kHz) || (val == CLK_16_384MHz)) {
> - SET_PORT_BITS(TLCLK_REG3, 0xc7, 0x28);
> - SET_PORT_BITS(TLCLK_REG1, 0xfb, ~val);
> - } else if (val >= CLK_8_592MHz) {
> - SET_PORT_BITS(TLCLK_REG3, 0xc7, 0x38);
> - switch (val) {
> - case CLK_8_592MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 2);
> - break;
> - case CLK_11_184MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 0);
> - break;
> - case CLK_34_368MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 3);
> - break;
> - case CLK_44_736MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 1);
> - break;
> - }
> - } else
> - SET_PORT_BITS(TLCLK_REG3, 0xc7, val << 3);
> + if ((val == CLK_8kHz) || (val == CLK_16_384MHz)) {
> + SET_PORT_BITS(TLCLK_REG3, 0xc7, 0x28);
> + SET_PORT_BITS(TLCLK_REG1, 0xfb, ~val);
> + } else if (val >= CLK_8_592MHz) {
> + SET_PORT_BITS(TLCLK_REG3, 0xc7, 0x38);
> + switch (val) {
> + case CLK_8_592MHz:
> + SET_PORT_BITS(TLCLK_REG0, 0xfc, 2);
> + break;
> + case CLK_11_184MHz:
> + SET_PORT_BITS(TLCLK_REG0, 0xfc, 0);
> + break;
> + case CLK_34_368MHz:
> + SET_PORT_BITS(TLCLK_REG0, 0xfc, 3);
> + break;
> + case CLK_44_736MHz:
> + SET_PORT_BITS(TLCLK_REG0, 0xfc, 1);
> + break;
> + }
> + } else
> + SET_PORT_BITS(TLCLK_REG3, 0xc7, val << 3);
> 
>   spin_unlock_irqrestore(_lock, flags);
> 
> @@ -548,27 +548,27 @@ static ssize_t
> store_select_amcb1_transmit_clock(struct device *d,
> 
>   val = (unsigned char)tmp;
>   spin_lock_irqsave(_lock, flags);
> - if ((val == CLK_8kHz) || (val == CLK_16_384MHz)) {
> - SET_PORT_BITS(TLCLK_REG3, 0xf8, 0x5);
> - SET_PORT_BITS(TLCLK_REG1, 0xfb, ~val);
> - } else if (val >= CLK_8_592MHz) {
> - SET_PORT_BITS(TLCLK_REG3, 0xf8, 0x7);
> - switch (val) {
> - case CLK_8_592MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 2);
> - break;
> - case CLK_11_184MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 0);
> - break;
> - case CLK_34_368MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 3);
> - break;
> - case CLK_44_736MHz:
> - SET_PORT_BITS(TLCLK_REG0, 0xfc, 1);
> - break;
> - }
> - } else
> - SET_PORT_BITS(TLCLK_REG3, 0xf8, val);
> + if ((val == CLK_8kHz) || (val == CLK_16_384MHz)) {
> + SET_PORT_BITS(TLCLK_REG3, 0xf8, 0x5);
> + SET_PORT_BITS(TLCLK_REG1, 0xfb, ~val);
> + } else if (val >= CLK_8_592MHz) {
> + SET_PORT_BITS(TLCLK_REG3, 0xf8, 0x7);
> + switch (val) {
> + case CLK_8_592MHz:
> + SET_PORT_BITS(TLCLK_REG0, 0xfc, 2);
> + break;
> 

RE: [PATCH 0/3] constify char attribute_group structures

2017-08-03 Thread Gross, Mark
Sounds good to me.
--mark

> -Original Message-
> From: Arvind Yadav [mailto:arvind.yadav...@gmail.com]
> Sent: Wednesday, August 2, 2017 10:35 PM
> To: Gross, Mark <mark.gr...@intel.com>; a...@arndb.de;
> gre...@linuxfoundation.org
> Cc: linux-kernel@vger.kernel.org
> Subject: Re: [PATCH 0/3] constify char attribute_group structures
> 
> Hi Mark,
> 
> 
> On Wednesday 02 August 2017 11:26 PM, Gross, Mark wrote:
> > Why stop at these 3 users of attribute_group?
> I am doing for all. This changes is only for char user. Few patch are under
> review and few are merged. Rest all I will send.
> 
> ~arvind
> > --mark
> >
> > -Original Message-
> > From: Arvind Yadav [mailto:arvind.yadav...@gmail.com]
> > Sent: Wednesday, August 2, 2017 4:19 AM
> > To: a...@arndb.de; gre...@linuxfoundation.org; Gross, Mark
> > <mark.gr...@intel.com>
> > Cc: linux-kernel@vger.kernel.org
> > Subject: [PATCH 0/3] constify char attribute_group structures
> >
> > attribute_group are not supposed to change at runtime. All functions working
> with attribute_group provided by  work with const
> attribute_group. So mark the non-const structs as const.
> >
> > Arvind Yadav (3):
> >[PATCH 1/3] char: tlclk: constify attribute_group structures.
> >[PATCH 2/3] char: tpm: constify attribute_group structures.
> >[PATCH 3/3] char: virtio: constify attribute_group structures.
> >
> >   drivers/char/tlclk.c  | 2 +-
> >   drivers/char/tpm/tpm_ppi.c| 2 +-
> >   drivers/char/virtio_console.c | 2 +-
> >   3 files changed, 3 insertions(+), 3 deletions(-)
> >
> > --
> > 1.9.1
> >



RE: [PATCH 0/3] constify char attribute_group structures

2017-08-03 Thread Gross, Mark
Sounds good to me.
--mark

> -Original Message-
> From: Arvind Yadav [mailto:arvind.yadav...@gmail.com]
> Sent: Wednesday, August 2, 2017 10:35 PM
> To: Gross, Mark ; a...@arndb.de;
> gre...@linuxfoundation.org
> Cc: linux-kernel@vger.kernel.org
> Subject: Re: [PATCH 0/3] constify char attribute_group structures
> 
> Hi Mark,
> 
> 
> On Wednesday 02 August 2017 11:26 PM, Gross, Mark wrote:
> > Why stop at these 3 users of attribute_group?
> I am doing for all. This changes is only for char user. Few patch are under
> review and few are merged. Rest all I will send.
> 
> ~arvind
> > --mark
> >
> > -Original Message-
> > From: Arvind Yadav [mailto:arvind.yadav...@gmail.com]
> > Sent: Wednesday, August 2, 2017 4:19 AM
> > To: a...@arndb.de; gre...@linuxfoundation.org; Gross, Mark
> > 
> > Cc: linux-kernel@vger.kernel.org
> > Subject: [PATCH 0/3] constify char attribute_group structures
> >
> > attribute_group are not supposed to change at runtime. All functions working
> with attribute_group provided by  work with const
> attribute_group. So mark the non-const structs as const.
> >
> > Arvind Yadav (3):
> >[PATCH 1/3] char: tlclk: constify attribute_group structures.
> >[PATCH 2/3] char: tpm: constify attribute_group structures.
> >[PATCH 3/3] char: virtio: constify attribute_group structures.
> >
> >   drivers/char/tlclk.c  | 2 +-
> >   drivers/char/tpm/tpm_ppi.c| 2 +-
> >   drivers/char/virtio_console.c | 2 +-
> >   3 files changed, 3 insertions(+), 3 deletions(-)
> >
> > --
> > 1.9.1
> >



RE: [PATCH 1/3] char: tlclk: constify attribute_group structures.

2017-08-02 Thread Gross, Mark
The driver doesn't seem to touch the name field after its defined it looks ok 
functionally.  

Note: I am not a fan of const declarations in the C language.  It's too 
complicated when we get into casting and pointers to structures.

I'm not sure there is a lot of value in being pedantic on a few users of 
attribute_group structures.  I'm thinking this change should be all or nothing 
and change core function prototypes to create warnings if they are not used 
with properly defined const 's.  Otherwise this is just a cosmetic change of 
minimal value to a subset of drivers.   

FWIW there does seem to be a good number (cscope finds 1700+) of 
attribute_group users across the kernel and a good number of them are not using 
const.  If you go down this pedantic path I don't think you should at just 3 
drivers.

Reviewed-by: mark gross <mark.gr...@intel.com>

--mark

> -Original Message-
> From: Arvind Yadav [mailto:arvind.yadav...@gmail.com]
> Sent: Wednesday, August 2, 2017 4:19 AM
> To: a...@arndb.de; gre...@linuxfoundation.org; Gross, Mark
> <mark.gr...@intel.com>
> Cc: linux-kernel@vger.kernel.org
> Subject: [PATCH 1/3] char: tlclk: constify attribute_group structures.
> 
> attribute_group are not supposed to change at runtime. All functions working
> with attribute_group provided by  work with const
> attribute_group. So mark the non-const structs as const.
> 
> Signed-off-by: Arvind Yadav <arvind.yadav...@gmail.com>
> ---
>  drivers/char/tlclk.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c index 
> 572a517..6210bff
> 100644
> --- a/drivers/char/tlclk.c
> +++ b/drivers/char/tlclk.c
> @@ -766,7 +766,7 @@ static ssize_t store_reset (struct device *d,
>   NULL
>  };
> 
> -static struct attribute_group tlclk_attribute_group = {
> +static const struct attribute_group tlclk_attribute_group = {
>   .name = NULL,   /* put in device directory */
>   .attrs = tlclk_sysfs_entries,
>  };
> --
> 1.9.1



RE: [PATCH 1/3] char: tlclk: constify attribute_group structures.

2017-08-02 Thread Gross, Mark
The driver doesn't seem to touch the name field after its defined it looks ok 
functionally.  

Note: I am not a fan of const declarations in the C language.  It's too 
complicated when we get into casting and pointers to structures.

I'm not sure there is a lot of value in being pedantic on a few users of 
attribute_group structures.  I'm thinking this change should be all or nothing 
and change core function prototypes to create warnings if they are not used 
with properly defined const 's.  Otherwise this is just a cosmetic change of 
minimal value to a subset of drivers.   

FWIW there does seem to be a good number (cscope finds 1700+) of 
attribute_group users across the kernel and a good number of them are not using 
const.  If you go down this pedantic path I don't think you should at just 3 
drivers.

Reviewed-by: mark gross 

--mark

> -Original Message-
> From: Arvind Yadav [mailto:arvind.yadav...@gmail.com]
> Sent: Wednesday, August 2, 2017 4:19 AM
> To: a...@arndb.de; gre...@linuxfoundation.org; Gross, Mark
> 
> Cc: linux-kernel@vger.kernel.org
> Subject: [PATCH 1/3] char: tlclk: constify attribute_group structures.
> 
> attribute_group are not supposed to change at runtime. All functions working
> with attribute_group provided by  work with const
> attribute_group. So mark the non-const structs as const.
> 
> Signed-off-by: Arvind Yadav 
> ---
>  drivers/char/tlclk.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c index 
> 572a517..6210bff
> 100644
> --- a/drivers/char/tlclk.c
> +++ b/drivers/char/tlclk.c
> @@ -766,7 +766,7 @@ static ssize_t store_reset (struct device *d,
>   NULL
>  };
> 
> -static struct attribute_group tlclk_attribute_group = {
> +static const struct attribute_group tlclk_attribute_group = {
>   .name = NULL,   /* put in device directory */
>   .attrs = tlclk_sysfs_entries,
>  };
> --
> 1.9.1



RE: [PATCH 0/3] constify char attribute_group structures

2017-08-02 Thread Gross, Mark
Why stop at these 3 users of attribute_group?

--mark

-Original Message-
From: Arvind Yadav [mailto:arvind.yadav...@gmail.com] 
Sent: Wednesday, August 2, 2017 4:19 AM
To: a...@arndb.de; gre...@linuxfoundation.org; Gross, Mark 
<mark.gr...@intel.com>
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 0/3] constify char attribute_group structures

attribute_group are not supposed to change at runtime. All functions working 
with attribute_group provided by  work with const 
attribute_group. So mark the non-const structs as const.

Arvind Yadav (3):
  [PATCH 1/3] char: tlclk: constify attribute_group structures.
  [PATCH 2/3] char: tpm: constify attribute_group structures.
  [PATCH 3/3] char: virtio: constify attribute_group structures.

 drivers/char/tlclk.c  | 2 +-
 drivers/char/tpm/tpm_ppi.c| 2 +-
 drivers/char/virtio_console.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

--
1.9.1



RE: [PATCH 0/3] constify char attribute_group structures

2017-08-02 Thread Gross, Mark
Why stop at these 3 users of attribute_group?

--mark

-Original Message-
From: Arvind Yadav [mailto:arvind.yadav...@gmail.com] 
Sent: Wednesday, August 2, 2017 4:19 AM
To: a...@arndb.de; gre...@linuxfoundation.org; Gross, Mark 

Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 0/3] constify char attribute_group structures

attribute_group are not supposed to change at runtime. All functions working 
with attribute_group provided by  work with const 
attribute_group. So mark the non-const structs as const.

Arvind Yadav (3):
  [PATCH 1/3] char: tlclk: constify attribute_group structures.
  [PATCH 2/3] char: tpm: constify attribute_group structures.
  [PATCH 3/3] char: virtio: constify attribute_group structures.

 drivers/char/tlclk.c  | 2 +-
 drivers/char/tpm/tpm_ppi.c| 2 +-
 drivers/char/virtio_console.c | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

--
1.9.1



RE: [PATCH 19/86] edac/e7xxx: use uapi/linux/pci_ids.h directly

2015-03-30 Thread Gross, Mark
ack

> -Original Message-
> From: Michael S. Tsirkin [mailto:m...@redhat.com]
> Sent: Sunday, March 29, 2015 6:39 AM
> To: linux-kernel@vger.kernel.org
> Cc: Gross, Mark; Doug Thompson; Borislav Petkov; Mauro Carvalho Chehab;
> linux-e...@vger.kernel.org
> Subject: [PATCH 19/86] edac/e7xxx: use uapi/linux/pci_ids.h directly
> 
> Header moved from linux/pci_ids.h to uapi/linux/pci_ids.h, use the new
> header directly so we can drop the wrapper in include/linux/pci_ids.h.
> 
> Signed-off-by: Michael S. Tsirkin 
> ---
>  drivers/edac/e752x_edac.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/edac/e752x_edac.c b/drivers/edac/e752x_edac.c index
> b2d7138..91c8441 100644
> --- a/drivers/edac/e752x_edac.c
> +++ b/drivers/edac/e752x_edac.c
> @@ -22,7 +22,7 @@
>  #include 
>  #include 
>  #include 
> -#include 
> +#include 
>  #include 
>  #include "edac_core.h"
> 
> --
> MST

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH 19/86] edac/e7xxx: use uapi/linux/pci_ids.h directly

2015-03-30 Thread Gross, Mark
ack

 -Original Message-
 From: Michael S. Tsirkin [mailto:m...@redhat.com]
 Sent: Sunday, March 29, 2015 6:39 AM
 To: linux-kernel@vger.kernel.org
 Cc: Gross, Mark; Doug Thompson; Borislav Petkov; Mauro Carvalho Chehab;
 linux-e...@vger.kernel.org
 Subject: [PATCH 19/86] edac/e7xxx: use uapi/linux/pci_ids.h directly
 
 Header moved from linux/pci_ids.h to uapi/linux/pci_ids.h, use the new
 header directly so we can drop the wrapper in include/linux/pci_ids.h.
 
 Signed-off-by: Michael S. Tsirkin m...@redhat.com
 ---
  drivers/edac/e752x_edac.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/edac/e752x_edac.c b/drivers/edac/e752x_edac.c index
 b2d7138..91c8441 100644
 --- a/drivers/edac/e752x_edac.c
 +++ b/drivers/edac/e752x_edac.c
 @@ -22,7 +22,7 @@
  #include linux/module.h
  #include linux/init.h
  #include linux/pci.h
 -#include linux/pci_ids.h
 +#include uapi/linux/pci_ids.h
  #include linux/edac.h
  #include edac_core.h
 
 --
 MST

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH] MAINTAINERS: INTEL MID SOC: add maintainer

2014-04-19 Thread Gross, Mark
Signed-off-by: markgross 

--mgross
The developer experience is our product

> -Original Message-
> From: David Cohen [mailto:david.a.co...@linux.intel.com]
> Sent: Thursday, April 17, 2014 7:39 PM
> To: h...@zytor.com; mi...@redhat.com; t...@linutronix.de;
> x...@kernel.org
> Cc: linux-kernel@vger.kernel.org; gno...@lxorguk.ukuu.org.uk; David
> Cohen; Gross, Mark
> Subject: [PATCH] MAINTAINERS: INTEL MID SOC: add maintainer
> 
> This patch adds official maintainer for low power Intel MID SoC platforms.
> 
> Signed-off-by: David Cohen 
> Cc: Mark Gross 
> ---
>  MAINTAINERS | 8 
>  1 file changed, 8 insertions(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 6dc67b1fdb50..b6056f33cb4d 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -5447,6 +5447,14 @@ W: logfs.org
>  S:   Maintained
>  F:   fs/logfs/
> 
> +LOW-POWER INTEL MID SOC SUPPORT
> +M:   David Cohen 
> +S:   Supported
> +F:   arch/x86/platform/intel-mid/
> +F:   arch/x86/pci/intel_mid_pci.c
> +F:   arch/x86/include/asm/intel-mid.h
> +F:   arch/x86/include/asm/intel_mid*.h
> +
>  LPC32XX MACHINE SUPPORT
>  M:   Roland Stigge 
>  L:   linux-arm-ker...@lists.infradead.org (moderated for non-
> subscribers)
> --
> 1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH] MAINTAINERS: INTEL MID SOC: add maintainer

2014-04-19 Thread Gross, Mark
Signed-off-by: markgross mgr...@linux.intel.com

--mgross
The developer experience is our product

 -Original Message-
 From: David Cohen [mailto:david.a.co...@linux.intel.com]
 Sent: Thursday, April 17, 2014 7:39 PM
 To: h...@zytor.com; mi...@redhat.com; t...@linutronix.de;
 x...@kernel.org
 Cc: linux-kernel@vger.kernel.org; gno...@lxorguk.ukuu.org.uk; David
 Cohen; Gross, Mark
 Subject: [PATCH] MAINTAINERS: INTEL MID SOC: add maintainer
 
 This patch adds official maintainer for low power Intel MID SoC platforms.
 
 Signed-off-by: David Cohen david.a.co...@linux.intel.com
 Cc: Mark Gross mark.gr...@intel.com
 ---
  MAINTAINERS | 8 
  1 file changed, 8 insertions(+)
 
 diff --git a/MAINTAINERS b/MAINTAINERS
 index 6dc67b1fdb50..b6056f33cb4d 100644
 --- a/MAINTAINERS
 +++ b/MAINTAINERS
 @@ -5447,6 +5447,14 @@ W: logfs.org
  S:   Maintained
  F:   fs/logfs/
 
 +LOW-POWER INTEL MID SOC SUPPORT
 +M:   David Cohen david.a.co...@linux.intel.com
 +S:   Supported
 +F:   arch/x86/platform/intel-mid/
 +F:   arch/x86/pci/intel_mid_pci.c
 +F:   arch/x86/include/asm/intel-mid.h
 +F:   arch/x86/include/asm/intel_mid*.h
 +
  LPC32XX MACHINE SUPPORT
  M:   Roland Stigge sti...@antcom.de
  L:   linux-arm-ker...@lists.infradead.org (moderated for non-
 subscribers)
 --
 1.9.1

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH 2/4] net: rfkill: gpio: remove gpio names

2014-02-27 Thread Gross, Mark
Please know that no one should not consider me an authority on ACPI at this 
time.  But, I have some comments / context / thoughts below.

Also I apologize in advance for any email formatting issues caused by replying 
to this via my work exchange account / outlook client.  Folks can use 
mgr...@linux.intel.com to avoid outlook-isms from me in the future.

> -Original Message-
> From: Linus Walleij [mailto:linus.wall...@linaro.org]
> Sent: Tuesday, February 25, 2014 1:14 AM
> To: Stephen Warren; Alexandre Courbot; Grant Likely;
> devicet...@vger.kernel.org
> Cc: Chen-Yu Tsai; Heikki Krogerus; Johannes Berg; David S. Miller; Rhyland
> Klein; linux-wireless; netdev; linux-kernel; Arnd Bergmann; Gross, Mark
> Subject: Re: [PATCH 2/4] net: rfkill: gpio: remove gpio names
> 
> On Fri, Feb 21, 2014 at 6:35 AM, Stephen Warren
>  wrote:
> > On 02/20/2014 06:55 PM, Chen-Yu Tsai wrote:
> 
> >> That's correct. However using con_id to pass this results in
> >> different behavior across DT and ACPI. A better way is to export the
> >> labeling function so consumers can set meaningful labels themselves.
> >
> > But this code is the consumer of those GPIOs. IF the parameter to
> > devm_gpiod_get_index() isn't intended to be used, why does it exist?
> 
> Kerneldoc says:
> 
> /**
>  * gpiod_get_index - obtain a GPIO from a multi-index GPIO function
>  * @dev:GPIO consumer, can be NULL for system-global GPIOs
>  * @con_id: function within the GPIO consumer
>  * @idx:index of the GPIO to obtain in the consumer
>  *
> 
> Basically it is just exposing the fact that of_find_gpio() and
> acpi_find_gpio() both take a con_id as argument.
> 
> If we drill into this, we find that it is used to conjure the arbitrary string
> before the gpios in the DT case, like:
> 
> foo-gpios = <...>;
> 
> As in tegra30-beaver.dts...
> 
> sdhci@7800 {
> status = "okay";
> cd-gpios = < TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
> wp-gpios = < TEGRA_GPIO(T, 3) GPIO_ACTIVE_HIGH>;
> power-gpios = < TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH>;
> bus-width = <4>;
> };
> 
> Instead of passing the GPIOs as index 0,1,2 they are named and I do admit
> this has a nice "things are under control" aspect to it.
[Gross, Mark] FWIW I don't think this is as "under control" as you do.  Those 
names in the above sdhci example are derived from a specific SDHCI tegra spec 
sheet or schematic.  Those names likely come from the data sheet for the 
controller.  I would like SDHCI kernel drivers to work pretty much the same for 
all compatible controllers.  The set of compatible controllers have spec sheets 
that use different naming conventions for their pins and thus a name space 
pollution of the SDHCI enumeration ABI will be a problem.

> 
> In the ACPI case the con_id is not used for anything.
> 
> So it is basically there to satisfy the habit in some device tree bindings to
> name gpio arrays instead of just passing gpios = <...>; (The latter should be
> encouraged going forward.)
[Gross, Mark] This is in fact just an idiom of the ACPI ABI inherited from 
writing linux drivers that work on systems with BIOS/FW developed for 
MS-Windows.  For the devices I work on we have a number of driver teams filing 
bugs against the BIOS/FW to add named GPIO objects to device name spaces such 
that they can directly query for the GPIO their driver needs and avoid assuming 
the 3rd GPIO is the special one they need for whatever...

So if you have the luxury of being able to influence (file bugs against or 
write) the platform enumeration ABI then with ACPI you can have a named gpio 
today.  Note: there is an expectation that the _PRP feature to go into the next 
version of ACPI and that should enable a trivial 1-1 mapping (when _prp is used 
by the ACPI platform) between the different platform enumeration API's (DT and 
ACPI).

Still, from a platform enumeration ABI point of view I see the arbitrariness of 
indexes not much worse than the arbitrary naming of pins off of spec sheets or 
schematics.  Given that the authors of those specs/layouts come up with a new 
naming schemes every time they log into their workstations (especially for the 
schematics).  I do admit names are a little better but still have the scaling 
issue WRT namespaces and arbitrary naming by HW engineers over time.

> 
> As DT is ABI we need to keep this forever, and driver may need to look for
> foo-gpios=<> and gpios=<> alike for backward compatibility if we'd change it,
> sweet isn't it? :-)
> 
> I don't quite like this, as it is adding stupid nonsens arguments for ACPI 
> GPIO
> producers (which only take an index AFAICT), but it 

RE: [PATCH 2/4] net: rfkill: gpio: remove gpio names

2014-02-27 Thread Gross, Mark
Please know that no one should not consider me an authority on ACPI at this 
time.  But, I have some comments / context / thoughts below.

Also I apologize in advance for any email formatting issues caused by replying 
to this via my work exchange account / outlook client.  Folks can use 
mgr...@linux.intel.com to avoid outlook-isms from me in the future.

 -Original Message-
 From: Linus Walleij [mailto:linus.wall...@linaro.org]
 Sent: Tuesday, February 25, 2014 1:14 AM
 To: Stephen Warren; Alexandre Courbot; Grant Likely;
 devicet...@vger.kernel.org
 Cc: Chen-Yu Tsai; Heikki Krogerus; Johannes Berg; David S. Miller; Rhyland
 Klein; linux-wireless; netdev; linux-kernel; Arnd Bergmann; Gross, Mark
 Subject: Re: [PATCH 2/4] net: rfkill: gpio: remove gpio names
 
 On Fri, Feb 21, 2014 at 6:35 AM, Stephen Warren
 swar...@wwwdotorg.org wrote:
  On 02/20/2014 06:55 PM, Chen-Yu Tsai wrote:
 
  That's correct. However using con_id to pass this results in
  different behavior across DT and ACPI. A better way is to export the
  labeling function so consumers can set meaningful labels themselves.
 
  But this code is the consumer of those GPIOs. IF the parameter to
  devm_gpiod_get_index() isn't intended to be used, why does it exist?
 
 Kerneldoc says:
 
 /**
  * gpiod_get_index - obtain a GPIO from a multi-index GPIO function
  * @dev:GPIO consumer, can be NULL for system-global GPIOs
  * @con_id: function within the GPIO consumer
  * @idx:index of the GPIO to obtain in the consumer
  *
 
 Basically it is just exposing the fact that of_find_gpio() and
 acpi_find_gpio() both take a con_id as argument.
 
 If we drill into this, we find that it is used to conjure the arbitrary string
 before the gpios in the DT case, like:
 
 foo-gpios = ...;
 
 As in tegra30-beaver.dts...
 
 sdhci@7800 {
 status = okay;
 cd-gpios = gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW;
 wp-gpios = gpio TEGRA_GPIO(T, 3) GPIO_ACTIVE_HIGH;
 power-gpios = gpio TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH;
 bus-width = 4;
 };
 
 Instead of passing the GPIOs as index 0,1,2 they are named and I do admit
 this has a nice things are under control aspect to it.
[Gross, Mark] FWIW I don't think this is as under control as you do.  Those 
names in the above sdhci example are derived from a specific SDHCI tegra spec 
sheet or schematic.  Those names likely come from the data sheet for the 
controller.  I would like SDHCI kernel drivers to work pretty much the same for 
all compatible controllers.  The set of compatible controllers have spec sheets 
that use different naming conventions for their pins and thus a name space 
pollution of the SDHCI enumeration ABI will be a problem.

 
 In the ACPI case the con_id is not used for anything.
 
 So it is basically there to satisfy the habit in some device tree bindings to
 name gpio arrays instead of just passing gpios = ...; (The latter should be
 encouraged going forward.)
[Gross, Mark] This is in fact just an idiom of the ACPI ABI inherited from 
writing linux drivers that work on systems with BIOS/FW developed for 
MS-Windows.  For the devices I work on we have a number of driver teams filing 
bugs against the BIOS/FW to add named GPIO objects to device name spaces such 
that they can directly query for the GPIO their driver needs and avoid assuming 
the 3rd GPIO is the special one they need for whatever...

So if you have the luxury of being able to influence (file bugs against or 
write) the platform enumeration ABI then with ACPI you can have a named gpio 
today.  Note: there is an expectation that the _PRP feature to go into the next 
version of ACPI and that should enable a trivial 1-1 mapping (when _prp is used 
by the ACPI platform) between the different platform enumeration API's (DT and 
ACPI).

Still, from a platform enumeration ABI point of view I see the arbitrariness of 
indexes not much worse than the arbitrary naming of pins off of spec sheets or 
schematics.  Given that the authors of those specs/layouts come up with a new 
naming schemes every time they log into their workstations (especially for the 
schematics).  I do admit names are a little better but still have the scaling 
issue WRT namespaces and arbitrary naming by HW engineers over time.

 
 As DT is ABI we need to keep this forever, and driver may need to look for
 foo-gpios= and gpios= alike for backward compatibility if we'd change it,
 sweet isn't it? :-)
 
 I don't quite like this, as it is adding stupid nonsens arguments for ACPI 
 GPIO
 producers (which only take an index AFAICT), but it is a first sacrifice on 
 the
 altar of trying to mask the differences between DT and ACPI probe paths
 about which I have mixed feelings.
[Gross, Mark] I don't have mixed feelings.  I want to see converged probe paths 
that can handle both ACPI and DT platform ABI's seamlessly so we can reuse 
drivers across architectures effectively.  I think the _PRP

RE: [PATCH v2] MODSIGN: do not send garbage to stderr when enabling modules signature

2013-04-10 Thread Gross, Mark
Sorry.  I don't use my outlook email on LMKL stuff hardly ever because of this 
sort of thing.

--mgross
http://umgwiki.intel.com/wiki/?title=Kernel

> -Original Message-
> From: Rusty Russell [mailto:ru...@rustcorp.com.au]
> Sent: Wednesday, April 10, 2013 12:29 AM
> To: Gross, Mark; Cohen, David A; dhowe...@redhat.com
> Cc: linux-kernel@vger.kernel.org
> Subject: RE: [PATCH v2] MODSIGN: do not send garbage to stderr when enabling
> modules signature
> 
> "Gross, Mark"  writes:
> > Reviewed-by: mark gross
> 
> Not sure that's a valid email address, so I added a space.
> 
> Cheers,
> Rusty.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH v2] MODSIGN: do not send garbage to stderr when enabling modules signature

2013-04-10 Thread Gross, Mark
Sorry.  I don't use my outlook email on LMKL stuff hardly ever because of this 
sort of thing.

--mgross
http://umgwiki.intel.com/wiki/?title=Kernel

 -Original Message-
 From: Rusty Russell [mailto:ru...@rustcorp.com.au]
 Sent: Wednesday, April 10, 2013 12:29 AM
 To: Gross, Mark; Cohen, David A; dhowe...@redhat.com
 Cc: linux-kernel@vger.kernel.org
 Subject: RE: [PATCH v2] MODSIGN: do not send garbage to stderr when enabling
 modules signature
 
 Gross, Mark mark.gr...@intel.com writes:
  Reviewed-by: mark grossmark.gr...@intel.com
 
 Not sure that's a valid email address, so I added a space.
 
 Cheers,
 Rusty.
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH v2] MODSIGN: do not send garbage to stderr when enabling modules signature

2013-04-09 Thread Gross, Mark
> -Original Message-
> From: Cohen, David A
> Sent: Tuesday, April 09, 2013 2:39 PM
> To: ru...@rustcorp.com.au; dhowe...@redhat.com
> Cc: linux-kernel@vger.kernel.org; Gross, Mark; Cohen, David A
> Subject: [PATCH v2] MODSIGN: do not send garbage to stderr when enabling
> modules signature
> 
> openssl may send garbage to stderr when generating X.509 key pair for modules
> signature regardless there was an error or not. It makes more difficult to 
> create
> scripts based on kernel error/warning messages.
> 
> When compiling kernel with -jN (N > 1), all warning/error messages printed 
> while
> openssl is generating key pair may get mixed dots and other symbols openssl
> sends to stderr. This patch makes sure openssl logs go to default stdout.
> 
> Example of the garbages:
> 
> crypto/anubis.c:581: warning: ‘inter’ is used uninitialized in this function
> Generating a 4096 bit RSA private key .
> drivers/gpu/drm/i915/i915_gem_gtt.c: In function ‘gen6_ggtt_insert_entries’:
> drivers/gpu/drm/i915/i915_gem_gtt.c:440: warning: ‘addr’ may be used
> uninitialized in this function
> .net/mac80211/tx.c: In function ‘ieee80211_subif_start_xmit’:
> net/mac80211/tx.c:1780: warning: ‘chanctx_conf’ may be used uninitialized in
> this function
> ..drivers/isdn/hardware/mISDN/hfcpci.c: In function ‘hfcpci_softirq’:
> .drivers/isdn/hardware/mISDN/hfcpci.c:2298: warning: ignoring return value
> of ‘driver_for_each_device’, declared with attribute warn_unused_result
> net/unix/af_unix.c: In function ‘unix_bind’:
> net/unix/af_unix.c:892: warning: ‘path.dentry’ may be used uninitialized in 
> this
> function
> net/unix/af_unix.c:892: warning: ‘path.mnt’ may be used uninitialized in this
> function ...++ In file included from drivers/message/i2o/config-osm.c:39:
> drivers/message/i2o/i2o_config.c: In function ‘i2o_cfg_passthru’:
> drivers/message/i2o/i2o_config.c:888: warning: cast to pointer from integer of
> different size
> drivers/message/i2o/i2o_config.c:943: warning: cast to pointer from integer of
> different size
> drivers/net/ethernet/amd/nmclan_cs.c: In function ‘nmclan_config’:
> drivers/net/ethernet/amd/nmclan_cs.c:625: warning:
> ‘pcmcia_request_exclusive_irq’ is deprecated (declared at
> include/pcmcia/ds.h:201)
> drivers/net/ethernet/mellanox/mlx4/mcg.c: In function ‘find_entry’:
> .
> ++
> writing new private key to 'signing_key.priv'
> -
> drivers/net/ethernet/mellanox/mlx4/mcg.c:601: warning: ‘hash’ may be used
> uninitialized in this function
> 
> Signed-off-by: David Cohen 
> ---
>  kernel/Makefile |2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/Makefile b/kernel/Makefile index bbde5f1..5a51e6c 100644
> --- a/kernel/Makefile
> +++ b/kernel/Makefile
> @@ -175,7 +175,7 @@ signing_key.priv signing_key.x509: x509.genkey
>   openssl req -new -nodes -utf8 -$(CONFIG_MODULE_SIG_HASH) -days
> 36500 \
>   -batch -x509 -config x509.genkey \
>   -outform DER -out signing_key.x509 \
> - -keyout signing_key.priv
> + -keyout signing_key.priv 2>&1
>   @echo "###"
>   @echo "### Key pair generated."
>   @echo "###"
> --
> 1.7.10.4
Reviewed-by: mark gross
N�r��yb�X��ǧv�^�)޺{.n�+{zX����ܨ}���Ơz�:+v���zZ+��+zf���h���~i���z��w���?�&�)ߢf��^jǫy�m��@A�a���
0��h���i

RE: [PATCH v2] MODSIGN: do not send garbage to stderr when enabling modules signature

2013-04-09 Thread Gross, Mark
 -Original Message-
 From: Cohen, David A
 Sent: Tuesday, April 09, 2013 2:39 PM
 To: ru...@rustcorp.com.au; dhowe...@redhat.com
 Cc: linux-kernel@vger.kernel.org; Gross, Mark; Cohen, David A
 Subject: [PATCH v2] MODSIGN: do not send garbage to stderr when enabling
 modules signature
 
 openssl may send garbage to stderr when generating X.509 key pair for modules
 signature regardless there was an error or not. It makes more difficult to 
 create
 scripts based on kernel error/warning messages.
 
 When compiling kernel with -jN (N  1), all warning/error messages printed 
 while
 openssl is generating key pair may get mixed dots and other symbols openssl
 sends to stderr. This patch makes sure openssl logs go to default stdout.
 
 Example of the garbages:
 
 crypto/anubis.c:581: warning: ‘inter’ is used uninitialized in this function
 Generating a 4096 bit RSA private key .
 drivers/gpu/drm/i915/i915_gem_gtt.c: In function ‘gen6_ggtt_insert_entries’:
 drivers/gpu/drm/i915/i915_gem_gtt.c:440: warning: ‘addr’ may be used
 uninitialized in this function
 .net/mac80211/tx.c: In function ‘ieee80211_subif_start_xmit’:
 net/mac80211/tx.c:1780: warning: ‘chanctx_conf’ may be used uninitialized in
 this function
 ..drivers/isdn/hardware/mISDN/hfcpci.c: In function ‘hfcpci_softirq’:
 .drivers/isdn/hardware/mISDN/hfcpci.c:2298: warning: ignoring return value
 of ‘driver_for_each_device’, declared with attribute warn_unused_result
 net/unix/af_unix.c: In function ‘unix_bind’:
 net/unix/af_unix.c:892: warning: ‘path.dentry’ may be used uninitialized in 
 this
 function
 net/unix/af_unix.c:892: warning: ‘path.mnt’ may be used uninitialized in this
 function ...++ In file included from drivers/message/i2o/config-osm.c:39:
 drivers/message/i2o/i2o_config.c: In function ‘i2o_cfg_passthru’:
 drivers/message/i2o/i2o_config.c:888: warning: cast to pointer from integer of
 different size
 drivers/message/i2o/i2o_config.c:943: warning: cast to pointer from integer of
 different size
 drivers/net/ethernet/amd/nmclan_cs.c: In function ‘nmclan_config’:
 drivers/net/ethernet/amd/nmclan_cs.c:625: warning:
 ‘pcmcia_request_exclusive_irq’ is deprecated (declared at
 include/pcmcia/ds.h:201)
 drivers/net/ethernet/mellanox/mlx4/mcg.c: In function ‘find_entry’:
 .
 ++
 writing new private key to 'signing_key.priv'
 -
 drivers/net/ethernet/mellanox/mlx4/mcg.c:601: warning: ‘hash’ may be used
 uninitialized in this function
 
 Signed-off-by: David Cohen david.a.co...@intel.com
 ---
  kernel/Makefile |2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/kernel/Makefile b/kernel/Makefile index bbde5f1..5a51e6c 100644
 --- a/kernel/Makefile
 +++ b/kernel/Makefile
 @@ -175,7 +175,7 @@ signing_key.priv signing_key.x509: x509.genkey
   openssl req -new -nodes -utf8 -$(CONFIG_MODULE_SIG_HASH) -days
 36500 \
   -batch -x509 -config x509.genkey \
   -outform DER -out signing_key.x509 \
 - -keyout signing_key.priv
 + -keyout signing_key.priv 21
   @echo ###
   @echo ### Key pair generated.
   @echo ###
 --
 1.7.10.4
Reviewed-by: mark grossmark.gr...@intel.com
N�r��yb�X��ǧv�^�)޺{.n�+{zX����ܨ}���Ơz�j:+v���zZ+��+zf���h���~i���z��w���?��)ߢf��^jǫy�m��@A�a���
0��h���i

RE: [PATCH RESEND] x86_dump_trace: avoiding endless " " is printed

2012-08-27 Thread Gross, Mark
Do you think we should add the same change to dumpstack_64.c too.

Looks like you addressed Alan's comments already (i.e. use of unlikely not 
needed, us %p, and use pr_warn instead of printk)

--mark

> -Original Message-
> From: Liu, Chuansheng
> Sent: Sunday, August 26, 2012 6:56 PM
> To: 'linux-kernel@vger.kernel.org' (linux-kernel@vger.kernel.org)
> Cc: h...@linux.intel.com; Gross, Mark; a...@linux.intel.com
> Subject: [PATCH RESEND] x86_dump_trace: avoiding endless "  " is
> printed
> 
> From: liu chuansheng 
> Subject: [PATCH] x86_dump_trace: avoiding endless "  " is printed
> 
> Found the case that endless "  " printing in dump_trace, and no real
> meaningful stack traces are output, so there should be one rare case that
> possibly context->previous_esp = context or other cases.
> 
> The endless "  " is as below:
> ...
> [   82.215244,0]  
> [   82.215399,0]  
> [   82.215554,0]  
> [   82.215710,0]  
> [   82.215865,0]  
> [   82.216022,0]  
> [   82.216178,0]  
> [   82.216333,0]  
> [   82.216488,0]  
> [   82.216643,0]  
> [   82.216798,0]  
> [   82.216953,0]  
> ...
> 
> This patch aim is:
> 1/ Limiting the "  " outputing, currently the max IRQ contexts is
> 2(softirq+harirq combination); 2/ When the max IRQ contexts 2 is reached,
> print the context content to confirm;
> 
> Change-Id: I6d72aa71c4c5ff8f9e6ae133b3f6bfec8887750d
> Signed-off-by: liu chuansheng 
> ---
>  arch/x86/kernel/dumpstack_32.c |   11 +++
>  1 files changed, 11 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/x86/kernel/dumpstack_32.c
> b/arch/x86/kernel/dumpstack_32.c index 1038a41..410fa38 100644
> --- a/arch/x86/kernel/dumpstack_32.c
> +++ b/arch/x86/kernel/dumpstack_32.c
> @@ -22,6 +22,7 @@ void dump_trace(struct task_struct *task, struct pt_regs
> *regs,
> const struct stacktrace_ops *ops, void *data)  {
> int graph = 0;
> +   int dump_irq_count = 0;
> 
> if (!task)
> task = current;
> @@ -47,8 +48,18 @@ void dump_trace(struct task_struct *task, struct
> pt_regs *regs,
> stack = (unsigned long *)context->previous_esp;
> if (!stack)
> break;
> +
> +   if (dump_irq_count > 2) {
> +   pr_warn("break multi-IRQ print,"
> +   "context=%p, stack=%p\n",
> +   context,
> +   stack);
> +   break;
> +   }
> +
> if (ops->stack(data, "IRQ") < 0)
> break;
> +   dump_irq_count++;
> touch_nmi_watchdog();
> }
>  }
> --
> 1.7.0.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH RESEND] x86_dump_trace: avoiding endless IRQ is printed

2012-08-27 Thread Gross, Mark
Do you think we should add the same change to dumpstack_64.c too.

Looks like you addressed Alan's comments already (i.e. use of unlikely not 
needed, us %p, and use pr_warn instead of printk)

--mark

 -Original Message-
 From: Liu, Chuansheng
 Sent: Sunday, August 26, 2012 6:56 PM
 To: 'linux-kernel@vger.kernel.org' (linux-kernel@vger.kernel.org)
 Cc: h...@linux.intel.com; Gross, Mark; a...@linux.intel.com
 Subject: [PATCH RESEND] x86_dump_trace: avoiding endless  IRQ  is
 printed
 
 From: liu chuansheng chuansheng@intel.com
 Subject: [PATCH] x86_dump_trace: avoiding endless  IRQ  is printed
 
 Found the case that endless  IRQ  printing in dump_trace, and no real
 meaningful stack traces are output, so there should be one rare case that
 possibly context-previous_esp = context or other cases.
 
 The endless  IRQ  is as below:
 ...
 [   82.215244,0]  IRQ
 [   82.215399,0]  IRQ
 [   82.215554,0]  IRQ
 [   82.215710,0]  IRQ
 [   82.215865,0]  IRQ
 [   82.216022,0]  IRQ
 [   82.216178,0]  IRQ
 [   82.216333,0]  IRQ
 [   82.216488,0]  IRQ
 [   82.216643,0]  IRQ
 [   82.216798,0]  IRQ
 [   82.216953,0]  IRQ
 ...
 
 This patch aim is:
 1/ Limiting the  IRQ  outputing, currently the max IRQ contexts is
 2(softirq+harirq combination); 2/ When the max IRQ contexts 2 is reached,
 print the context content to confirm;
 
 Change-Id: I6d72aa71c4c5ff8f9e6ae133b3f6bfec8887750d
 Signed-off-by: liu chuansheng chuansheng@intel.com
 ---
  arch/x86/kernel/dumpstack_32.c |   11 +++
  1 files changed, 11 insertions(+), 0 deletions(-)
 
 diff --git a/arch/x86/kernel/dumpstack_32.c
 b/arch/x86/kernel/dumpstack_32.c index 1038a41..410fa38 100644
 --- a/arch/x86/kernel/dumpstack_32.c
 +++ b/arch/x86/kernel/dumpstack_32.c
 @@ -22,6 +22,7 @@ void dump_trace(struct task_struct *task, struct pt_regs
 *regs,
 const struct stacktrace_ops *ops, void *data)  {
 int graph = 0;
 +   int dump_irq_count = 0;
 
 if (!task)
 task = current;
 @@ -47,8 +48,18 @@ void dump_trace(struct task_struct *task, struct
 pt_regs *regs,
 stack = (unsigned long *)context-previous_esp;
 if (!stack)
 break;
 +
 +   if (dump_irq_count  2) {
 +   pr_warn(break multi-IRQ print,
 +   context=%p, stack=%p\n,
 +   context,
 +   stack);
 +   break;
 +   }
 +
 if (ops-stack(data, IRQ)  0)
 break;
 +   dump_irq_count++;
 touch_nmi_watchdog();
 }
  }
 --
 1.7.0.4
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH 5/6] drivers/char/tlclk.c: fix error return code

2012-08-05 Thread Gross, Mark
Acked-by 

--mark
Ps sorry for the outlook munged reply.

-Original Message-
From: Julia Lawall [mailto:julia.law...@lip6.fr] 
Sent: Sunday, August 05, 2012 2:53 AM
To: Gross, Mark
Cc: kernel-janit...@vger.kernel.org; Arnd Bergmann; Greg Kroah-Hartman; 
linux-kernel@vger.kernel.org; Julia Lawall
Subject: [PATCH 5/6] drivers/char/tlclk.c: fix error return code

From: Julia Lawall 

Convert a 0 error return code to a negative one, as returned elsewhere in the 
function.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// 
@@
identifier ret;
expression e,e1,e2,e3,e4,x;
@@

(
if (\(ret != 0\|ret < 0\) || ...) { ... return ...; }
|
ret = 0
)
... when != ret = e1
*x = 
\(kmalloc\|kzalloc\|kcalloc\|devm_kzalloc\|ioremap\|ioremap_nocache\|devm_ioremap\|devm_ioremap_nocache\)(...);
... when != x = e2
when != ret = e3
*if (x == NULL || ...)
{
  ... when != ret = e4
*  return ret;
}
// 

Signed-off-by: Julia Lawall 

---
 drivers/char/tlclk.c |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c index ce29e7c..e95e0ab 
100644
--- a/drivers/char/tlclk.c
+++ b/drivers/char/tlclk.c
@@ -784,8 +784,10 @@ static int __init tlclk_init(void)
}
tlclk_major = ret;
alarm_events = kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL);
-   if (!alarm_events)
+   if (!alarm_events) {
+   ret = -ENOMEM;
goto out1;
+   }
 
/* Read telecom clock IRQ number (Set by BIOS) */
if (!request_region(TLCLK_BASE, 8, "telco_clock")) {

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [PATCH 5/6] drivers/char/tlclk.c: fix error return code

2012-08-05 Thread Gross, Mark
Acked-by mark.gr...@intel.com

--mark
Ps sorry for the outlook munged reply.

-Original Message-
From: Julia Lawall [mailto:julia.law...@lip6.fr] 
Sent: Sunday, August 05, 2012 2:53 AM
To: Gross, Mark
Cc: kernel-janit...@vger.kernel.org; Arnd Bergmann; Greg Kroah-Hartman; 
linux-kernel@vger.kernel.org; Julia Lawall
Subject: [PATCH 5/6] drivers/char/tlclk.c: fix error return code

From: Julia Lawall ju...@diku.dk

Convert a 0 error return code to a negative one, as returned elsewhere in the 
function.

A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)

// smpl
@@
identifier ret;
expression e,e1,e2,e3,e4,x;
@@

(
if (\(ret != 0\|ret  0\) || ...) { ... return ...; }
|
ret = 0
)
... when != ret = e1
*x = 
\(kmalloc\|kzalloc\|kcalloc\|devm_kzalloc\|ioremap\|ioremap_nocache\|devm_ioremap\|devm_ioremap_nocache\)(...);
... when != x = e2
when != ret = e3
*if (x == NULL || ...)
{
  ... when != ret = e4
*  return ret;
}
// /smpl

Signed-off-by: Julia Lawall ju...@diku.dk

---
 drivers/char/tlclk.c |4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/char/tlclk.c b/drivers/char/tlclk.c index ce29e7c..e95e0ab 
100644
--- a/drivers/char/tlclk.c
+++ b/drivers/char/tlclk.c
@@ -784,8 +784,10 @@ static int __init tlclk_init(void)
}
tlclk_major = ret;
alarm_events = kzalloc( sizeof(struct tlclk_alarms), GFP_KERNEL);
-   if (!alarm_events)
+   if (!alarm_events) {
+   ret = -ENOMEM;
goto out1;
+   }
 
/* Read telecom clock IRQ number (Set by BIOS) */
if (!request_region(TLCLK_BASE, 8, telco_clock)) {

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: Message codes (Re: [Announce] Linux-tiny project revival)

2007-09-21 Thread Gross, Mark


>-Original Message-
>From: Joe Perches [mailto:[EMAIL PROTECTED]
>Sent: Friday, September 21, 2007 3:33 PM
>To: Gross, Mark
>Cc: Rob Landley; Oleg Verych; Alexey Dobriyan; Michael Opdenacker;
linux-
>[EMAIL PROTECTED]; CE Linux Developers List; linux kernel
>Subject: RE: Message codes (Re: [Announce] Linux-tiny project revival)
>
>On Fri, 2007-09-21 at 15:12 -0700, Gross, Mark wrote:
>> Use compiler tricks to remove ALL the static printk string from
>> the kernel and replace the printk with something that outputs a
>> decimal index followed by tuples, of zero to N, hex-strings on
>
>> I proposed a mechanism for keeping all the printk data and saving
space
>> buy doing some table based compressions that has the side effect of
>> making the syslog not human readable.  You proposed a mechanism for
>> no-oping out complete log-levels.
>
>How about compiler tricks to compress the static printk strings?
>These could be expanded at runtime to use as the format.

You would have to hold the text table (compressed) in memory to do this
at run time.  That would still be pretty large hunk of memory.  

>
>Timothy Miller suggested something similar awhile ago.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: Message codes (Re: [Announce] Linux-tiny project revival)

2007-09-21 Thread Gross, Mark


>-Original Message-
>From: Rob Landley [mailto:[EMAIL PROTECTED]
>Sent: Friday, September 21, 2007 2:16 PM
>To: Gross, Mark
>Cc: Oleg Verych; Alexey Dobriyan; Michael Opdenacker; linux-
>[EMAIL PROTECTED]; CE Linux Developers List; linux kernel
>Subject: Re: Message codes (Re: [Announce] Linux-tiny project revival)
>
>On Friday 21 September 2007 9:18:40 am Gross, Mark wrote:
>> >-Original Message-
>> >From: Oleg Verych [mailto:[EMAIL PROTECTED]
>> >Sent: Thursday, September 20, 2007 5:58 PM
>> >To: Gross, Mark
>> >Cc: Rob Landley; Alexey Dobriyan; Michael Opdenacker; linux-
>> >[EMAIL PROTECTED]; CE Linux Developers List; linux kernel
>> >Subject: Message codes (Re: [Announce] Linux-tiny project revival)
>> >
>> >* Thu, 20 Sep 2007 15:15:47 -0700
>> >* X-MimeOLE: Produced By Microsoft Exchange V6.5
>> >[]
>> >
>> >>>*Shrug*.
>> >>>
>> >>>My problem is that switching off printk is the single biggest
bloat
>> >>
>> >> cutter
>> >>
>> >>>in
>> >>>the kernel, yet it makes the resulting system very hard to
support.
>>
>> It
>>
>> >>>combines a big upside with a big downside, and I'd like something
in
>> >>>between.
>> >>
>> >> What about getting even more hard core?
>> >>
>> >> Use compiler tricks to remove ALL the static printk string from
the
>> >> kernel and replace the printk with something that outputs an
decimal
>> >> index followed by tuples, of zero to N, hex-strings on a single
line.
>> >
>> >Not all, but critical info, that must exist in human-readable form
of
>> >course.
>>
>> I disagree.  For a production product the you want minimal
information
>> to reduce the communication bandwidth required between the remote
>> customer and the support organization.
>>
>> In fact there is a good argument that you don't what the remote
customer
>> to know enough to start guessing.
>
>Don't use Linux then.  Open source is a horrible fit for the way you
think.

I'll do what I like, thank you.  I'll continue to use Linux, I think
it's a fine fit for the way *I* think.

>
>I'm sympathetic to "shrink the binary size" arguments.  I'm not really
>sympathic to "keep the customer in the dark intentionally" arguments,
>whether
>the justification is "because they're stupid", "to increase dependency
on
>our
>support staff", or any other reason.

You are now talking religion at this point.  Do you have a technical or
even experience based point to make?  

I have experience that has shown that providing too much information in
a production product can is confusing, harmful and costly when dealing
with consumers.  Your opinions won't change that.

I proposed a mechanism for keeping all the printk data and saving space
buy doing some table based compressions that has the side effect of
making the syslog not human readable.  You proposed a mechanism for
no-oping out complete log-levels.   

Which way hides more from the user?  No-oping the log-levels is the
easier to implement.


>
>> >Seriously. When in the Windows there are only messages like:
>> >
>> >"Error (Code:0x2012)".
>>
>> Now it's been ~8 years since I did any serious windows work, but if I
>> recall correctly ALL THE FRICKING TIME!!! When was the last time
you've
>> seen a bug check on windows?  This is about all you get.
>
>I believe he was holding it up as a bad example, and definitely not
>something
>we want to emulate.

There is a time and place for many things.  Even error codes. 

--mgross
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: Message codes (Re: [Announce] Linux-tiny project revival)

2007-09-21 Thread Gross, Mark


>-Original Message-
>From: Oleg Verych [mailto:[EMAIL PROTECTED]
>Sent: Thursday, September 20, 2007 5:58 PM
>To: Gross, Mark
>Cc: Rob Landley; Alexey Dobriyan; Michael Opdenacker; linux-
>[EMAIL PROTECTED]; CE Linux Developers List; linux kernel
>Subject: Message codes (Re: [Announce] Linux-tiny project revival)
>
>* Thu, 20 Sep 2007 15:15:47 -0700
>* X-MimeOLE: Produced By Microsoft Exchange V6.5
>[]
>>>*Shrug*.
>>>
>>>My problem is that switching off printk is the single biggest bloat
>> cutter
>>>in
>>>the kernel, yet it makes the resulting system very hard to support.
It
>>>combines a big upside with a big downside, and I'd like something in
>>>between.
>>
>> What about getting even more hard core?
>>
>> Use compiler tricks to remove ALL the static printk string from the
>> kernel and replace the printk with something that outputs an decimal
>> index followed by tuples, of zero to N, hex-strings on a single line.
>
>Not all, but critical info, that must exist in human-readable form of
>course.

I disagree.  For a production product the you want minimal information
to reduce the communication bandwidth required between the remote
customer and the support organization.

In fact there is a good argument that you don't what the remote customer
to know enough to start guessing.  In the support stage of a products
life cycle you really don't want guessing or fudging of information
based on guessing.  Keeping the output cryptic and short will avoid
these things.  (That really does happen and it cost a lot in support
engineering time)

>
>> Then have the syslogd or some other utility take this cryptic output
and
>> convolve it with a table (created at compile time) to re-create what
>> would have been dumped to the sys-log ring buffer.  This way you
strip
>> out most of the static text from the kernel and yet can still
re-create
>> the kernlog output.
>>
>> At least as a post processing operation
>
>Sure, but a little problem is, that many kernel developers do C
(mostly)
>and Perl (occasionally), i.e. very few do non-trivial userspace (even
>userspace do too much C and Perl sometimes [:
><http://thread.gmane.org/gmane.comp.lib.glibc.alpha/12739>)
>

Oh poo.  Kernel programmers can use user mode tools and write them too,
and I *know* even I could write such a post processing program to take a
somewhat compressed and cryptic output and generate what would have been
created in the syslog used.  (in python)

>> Is this an old idea?  I'm guessing this has been at least proposed
>> before
>
>Seriously. When in the Windows there are only messages like:
>
>"Error (Code:0x2012)".

Now it's been ~8 years since I did any serious windows work, but if I
recall correctly ALL THE FRICKING TIME!!! When was the last time you've
seen a bug check on windows?  This is about all you get.

>
>In the Linux... well, embedded targets, this can be turned in a very
>efficient thing by means of userspace. On other setups this can be nice
>and pleasant one, with yet another L10N project, recently promoted by
>README translations. But,,, see problem above.
>

>From you comments I'm not sure you are for or against this idea.

--mgross
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: Message codes (Re: [Announce] Linux-tiny project revival)

2007-09-21 Thread Gross, Mark


-Original Message-
From: Oleg Verych [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 20, 2007 5:58 PM
To: Gross, Mark
Cc: Rob Landley; Alexey Dobriyan; Michael Opdenacker; linux-
[EMAIL PROTECTED]; CE Linux Developers List; linux kernel
Subject: Message codes (Re: [Announce] Linux-tiny project revival)

* Thu, 20 Sep 2007 15:15:47 -0700
* X-MimeOLE: Produced By Microsoft Exchange V6.5
[]
*Shrug*.

My problem is that switching off printk is the single biggest bloat
 cutter
in
the kernel, yet it makes the resulting system very hard to support.
It
combines a big upside with a big downside, and I'd like something in
between.

 What about getting even more hard core?

 Use compiler tricks to remove ALL the static printk string from the
 kernel and replace the printk with something that outputs an decimal
 index followed by tuples, of zero to N, hex-strings on a single line.

Not all, but critical info, that must exist in human-readable form of
course.

I disagree.  For a production product the you want minimal information
to reduce the communication bandwidth required between the remote
customer and the support organization.

In fact there is a good argument that you don't what the remote customer
to know enough to start guessing.  In the support stage of a products
life cycle you really don't want guessing or fudging of information
based on guessing.  Keeping the output cryptic and short will avoid
these things.  (That really does happen and it cost a lot in support
engineering time)


 Then have the syslogd or some other utility take this cryptic output
and
 convolve it with a table (created at compile time) to re-create what
 would have been dumped to the sys-log ring buffer.  This way you
strip
 out most of the static text from the kernel and yet can still
re-create
 the kernlog output.

 At least as a post processing operation

Sure, but a little problem is, that many kernel developers do C
(mostly)
and Perl (occasionally), i.e. very few do non-trivial userspace (even
userspace do too much C and Perl sometimes [:
http://thread.gmane.org/gmane.comp.lib.glibc.alpha/12739)


Oh poo.  Kernel programmers can use user mode tools and write them too,
and I *know* even I could write such a post processing program to take a
somewhat compressed and cryptic output and generate what would have been
created in the syslog used.  (in python)

 Is this an old idea?  I'm guessing this has been at least proposed
 before

Seriously. When in the Windows there are only messages like:

Error (Code:0x2012).

Now it's been ~8 years since I did any serious windows work, but if I
recall correctly ALL THE FRICKING TIME!!! When was the last time you've
seen a bug check on windows?  This is about all you get.


In the Linux... well, embedded targets, this can be turned in a very
efficient thing by means of userspace. On other setups this can be nice
and pleasant one, with yet another L10N project, recently promoted by
README translations. But,,, see problem above.


From you comments I'm not sure you are for or against this idea.

--mgross
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: Message codes (Re: [Announce] Linux-tiny project revival)

2007-09-21 Thread Gross, Mark


-Original Message-
From: Rob Landley [mailto:[EMAIL PROTECTED]
Sent: Friday, September 21, 2007 2:16 PM
To: Gross, Mark
Cc: Oleg Verych; Alexey Dobriyan; Michael Opdenacker; linux-
[EMAIL PROTECTED]; CE Linux Developers List; linux kernel
Subject: Re: Message codes (Re: [Announce] Linux-tiny project revival)

On Friday 21 September 2007 9:18:40 am Gross, Mark wrote:
 -Original Message-
 From: Oleg Verych [mailto:[EMAIL PROTECTED]
 Sent: Thursday, September 20, 2007 5:58 PM
 To: Gross, Mark
 Cc: Rob Landley; Alexey Dobriyan; Michael Opdenacker; linux-
 [EMAIL PROTECTED]; CE Linux Developers List; linux kernel
 Subject: Message codes (Re: [Announce] Linux-tiny project revival)
 
 * Thu, 20 Sep 2007 15:15:47 -0700
 * X-MimeOLE: Produced By Microsoft Exchange V6.5
 []
 
 *Shrug*.
 
 My problem is that switching off printk is the single biggest
bloat
 
  cutter
 
 in
 the kernel, yet it makes the resulting system very hard to
support.

 It

 combines a big upside with a big downside, and I'd like something
in
 between.
 
  What about getting even more hard core?
 
  Use compiler tricks to remove ALL the static printk string from
the
  kernel and replace the printk with something that outputs an
decimal
  index followed by tuples, of zero to N, hex-strings on a single
line.
 
 Not all, but critical info, that must exist in human-readable form
of
 course.

 I disagree.  For a production product the you want minimal
information
 to reduce the communication bandwidth required between the remote
 customer and the support organization.

 In fact there is a good argument that you don't what the remote
customer
 to know enough to start guessing.

Don't use Linux then.  Open source is a horrible fit for the way you
think.

I'll do what I like, thank you.  I'll continue to use Linux, I think
it's a fine fit for the way *I* think.


I'm sympathetic to shrink the binary size arguments.  I'm not really
sympathic to keep the customer in the dark intentionally arguments,
whether
the justification is because they're stupid, to increase dependency
on
our
support staff, or any other reason.

You are now talking religion at this point.  Do you have a technical or
even experience based point to make?  

I have experience that has shown that providing too much information in
a production product can is confusing, harmful and costly when dealing
with consumers.  Your opinions won't change that.

I proposed a mechanism for keeping all the printk data and saving space
buy doing some table based compressions that has the side effect of
making the syslog not human readable.  You proposed a mechanism for
no-oping out complete log-levels.   

Which way hides more from the user?  No-oping the log-levels is the
easier to implement.



 Seriously. When in the Windows there are only messages like:
 
 Error (Code:0x2012).

 Now it's been ~8 years since I did any serious windows work, but if I
 recall correctly ALL THE FRICKING TIME!!! When was the last time
you've
 seen a bug check on windows?  This is about all you get.

I believe he was holding it up as a bad example, and definitely not
something
we want to emulate.

There is a time and place for many things.  Even error codes. 

--mgross
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: Message codes (Re: [Announce] Linux-tiny project revival)

2007-09-21 Thread Gross, Mark


-Original Message-
From: Joe Perches [mailto:[EMAIL PROTECTED]
Sent: Friday, September 21, 2007 3:33 PM
To: Gross, Mark
Cc: Rob Landley; Oleg Verych; Alexey Dobriyan; Michael Opdenacker;
linux-
[EMAIL PROTECTED]; CE Linux Developers List; linux kernel
Subject: RE: Message codes (Re: [Announce] Linux-tiny project revival)

On Fri, 2007-09-21 at 15:12 -0700, Gross, Mark wrote:
 Use compiler tricks to remove ALL the static printk string from
 the kernel and replace the printk with something that outputs a
 decimal index followed by tuples, of zero to N, hex-strings on

 I proposed a mechanism for keeping all the printk data and saving
space
 buy doing some table based compressions that has the side effect of
 making the syslog not human readable.  You proposed a mechanism for
 no-oping out complete log-levels.

How about compiler tricks to compress the static printk strings?
These could be expanded at runtime to use as the format.

You would have to hold the text table (compressed) in memory to do this
at run time.  That would still be pretty large hunk of memory.  


Timothy Miller suggested something similar awhile ago.
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


RE: [Celinux-dev] Re: [Announce] Linux-tiny project revival

2007-09-20 Thread Gross, Mark


>-Original Message-
>From: [EMAIL PROTECTED] [mailto:celinux-dev-
>[EMAIL PROTECTED] On Behalf Of Rob Landley
>Sent: Thursday, September 20, 2007 3:02 PM
>To: Alexey Dobriyan
>Cc: Michael Opdenacker; [EMAIL PROTECTED]; CE Linux Developers
List;
>linux kernel
>Subject: [Celinux-dev] Re: [Announce] Linux-tiny project revival
>
>On Thursday 20 September 2007 2:58:44 pm Alexey Dobriyan wrote:
>> On Thu, Sep 20, 2007 at 03:38:42PM -0500, Rob Landley wrote:
>> > I've been playing with an idea for a while to improve the printk()
>> > situation, but it's a more intrusive change than I've had time to
bang
>> > on.
>> >
>> > Right now, the first argument to printk() is a loglevel, but it's
>handled
>> > via string concatenation.  I'd like to change that to be an
integer,
>and
>> > make it an actual comma-separated first argument.  (Mandatory, not
>> > optional.)
>> >
>> > So instead of:
>> >   printk(KERN_NOTICE "Fruit=%d\n", banana);
>> > It would now be:
>> >   printk(KERN_NOTICE, "Fruit=%d\n", banana);
>> >
>> > Change the header from:
>> >   #define KERN_NOTICE "<5>"
>> > to:
>> >   #define KERN_NOTICE 5
>> >
>> > Then you can change the printk guts to do something vaguely like
>> > (untested): #define printk(arg1, arg2, ...) actual_printk("<" #arg1
">"
>> > arg2, __VA_ARGS__)
>> >
>> > And so far no behavior has changed.  But now the _fun_ part is, you
can
>> > add a config symbol for "what is the minimum loglevel I care
about?"
>>
>> Given that
>> a) there're plenty of printks without any KERN_* bloat,
>
>> b) there're printks that SHOULD NOT have KERN_* bloat,
>
>So define a level 0 that doesn't prepend any level to the string, and
have
>the
>macro filter that out at the same default level it counts as now.
>(KERN_INFO, I think?)  The tests are all on contants which should
resolve
>at
>compile time and the dead code eliminator should zap it, even if the
macro
>gets more complicated it shouldn't result in a bigger binary.
>
>> c) debugging-by-printk method is widely used and this will force
>>additional typing, head-scratching  and swear words
>
>Because we never change kernel internal APIs.  Oh yeah.  Never happens.
>
>> d) time wasted on pointless discussions whether some particular
>>printk ALERT or CRIT
>
>Let me get this straight: you're objecting to actually making the
printk
>levels useful enough that developers start to care what they're set to,
>because then they might be motivated to want some of them changed?
>
>Make it useful, people might care, thus they might talk about it...
>
>Sorry, I'm still missing the downside here.
>
>> e) flag day for printk,
>
>That's the main reason I haven't played with it so far, although it
would
>be
>easy to define a new symbol (dprintk or some such, although I note
several
>drivers are already using that) and transition gradually.
>
>> I think that this idea is not worth it.
>
>*Shrug*.
>
>My problem is that switching off printk is the single biggest bloat
cutter
>in
>the kernel, yet it makes the resulting system very hard to support.  It
>combines a big upside with a big downside, and I'd like something in
>between.

What about getting even more hard core? 

Use compiler tricks to remove ALL the static printk string from the
kernel and replace the printk with something that outputs an decimal
index followed by tuples, of zero to N, hex-strings on a single line.
Then have the syslogd or some other utility take this cryptic output and
convolve it with a table (created at compile time) to re-create what
would have been dumped to the sys-log ring buffer.  This way you strip
out most of the static text from the kernel and yet can still re-create
the kernlog output.

At least as a post processing operation

Is this an old idea?  I'm guessing this has been at least proposed
before

--mgross

the 
>
>> > #define printk(level, str, ...) \
>> >   do { \
>> > if (level < CONFIG_PRINTK_DOICARE) \
>> >   actual_printk("<" #level ">" str, __VA_ARGS__); \
>> >   } while(0);
>> >
>> > Opinions?
>>
>> Ick.
>>
>>  Alexey "ignore_loglevel" Dobriyan
>
>But ignore_loglevel doesn't decrease the size of the _binary_.  That's
what
>we're talking about here with the -tiny tree.  Embedded developers want
to
>squeeze more code onto smaller flash/rom chips.  Setting
ignore_loglevel
>does
>prevent these messages from ever being emitted, but they're still in
the
>kernel image as dead weight.  It saves noise but doesn't save _space_.
>
>I'm proposing allowing an ignore_loglevel to remove the unused messages
at
>compile time so they don't take up space.  Doing that requires the
levels
>to
>be integers so they can be compared with < or >, and the remaining
changes
>follow logically.  (To me, anyway...)
>
>Rob
>--
>"One of my most productive days was throwing away 1000 lines of code."
>  - Ken Thompson.
>___
>Celinux-dev mailing list
>[EMAIL PROTECTED]
>http://tree.celinuxforum.org/mailman/listinfo/celinux-dev
-
To 

RE: [Celinux-dev] Re: [Announce] Linux-tiny project revival

2007-09-20 Thread Gross, Mark


-Original Message-
From: [EMAIL PROTECTED] [mailto:celinux-dev-
[EMAIL PROTECTED] On Behalf Of Rob Landley
Sent: Thursday, September 20, 2007 3:02 PM
To: Alexey Dobriyan
Cc: Michael Opdenacker; [EMAIL PROTECTED]; CE Linux Developers
List;
linux kernel
Subject: [Celinux-dev] Re: [Announce] Linux-tiny project revival

On Thursday 20 September 2007 2:58:44 pm Alexey Dobriyan wrote:
 On Thu, Sep 20, 2007 at 03:38:42PM -0500, Rob Landley wrote:
  I've been playing with an idea for a while to improve the printk()
  situation, but it's a more intrusive change than I've had time to
bang
  on.
 
  Right now, the first argument to printk() is a loglevel, but it's
handled
  via string concatenation.  I'd like to change that to be an
integer,
and
  make it an actual comma-separated first argument.  (Mandatory, not
  optional.)
 
  So instead of:
printk(KERN_NOTICE Fruit=%d\n, banana);
  It would now be:
printk(KERN_NOTICE, Fruit=%d\n, banana);
 
  Change the header from:
#define KERN_NOTICE 5
  to:
#define KERN_NOTICE 5
 
  Then you can change the printk guts to do something vaguely like
  (untested): #define printk(arg1, arg2, ...) actual_printk( #arg1

  arg2, __VA_ARGS__)
 
  And so far no behavior has changed.  But now the _fun_ part is, you
can
  add a config symbol for what is the minimum loglevel I care
about?

 Given that
 a) there're plenty of printks without any KERN_* bloat,

 b) there're printks that SHOULD NOT have KERN_* bloat,

So define a level 0 that doesn't prepend any level to the string, and
have
the
macro filter that out at the same default level it counts as now.
(KERN_INFO, I think?)  The tests are all on contants which should
resolve
at
compile time and the dead code eliminator should zap it, even if the
macro
gets more complicated it shouldn't result in a bigger binary.

 c) debugging-by-printk method is widely used and this will force
additional typing, head-scratching  and swear words

Because we never change kernel internal APIs.  Oh yeah.  Never happens.

 d) time wasted on pointless discussions whether some particular
printk ALERT or CRIT

Let me get this straight: you're objecting to actually making the
printk
levels useful enough that developers start to care what they're set to,
because then they might be motivated to want some of them changed?

Make it useful, people might care, thus they might talk about it...

Sorry, I'm still missing the downside here.

 e) flag day for printk,

That's the main reason I haven't played with it so far, although it
would
be
easy to define a new symbol (dprintk or some such, although I note
several
drivers are already using that) and transition gradually.

 I think that this idea is not worth it.

*Shrug*.

My problem is that switching off printk is the single biggest bloat
cutter
in
the kernel, yet it makes the resulting system very hard to support.  It
combines a big upside with a big downside, and I'd like something in
between.

What about getting even more hard core? 

Use compiler tricks to remove ALL the static printk string from the
kernel and replace the printk with something that outputs an decimal
index followed by tuples, of zero to N, hex-strings on a single line.
Then have the syslogd or some other utility take this cryptic output and
convolve it with a table (created at compile time) to re-create what
would have been dumped to the sys-log ring buffer.  This way you strip
out most of the static text from the kernel and yet can still re-create
the kernlog output.

At least as a post processing operation

Is this an old idea?  I'm guessing this has been at least proposed
before

--mgross

the 

  #define printk(level, str, ...) \
do { \
  if (level  CONFIG_PRINTK_DOICARE) \
actual_printk( #level  str, __VA_ARGS__); \
} while(0);
 
  Opinions?

 Ick.

  Alexey ignore_loglevel Dobriyan

But ignore_loglevel doesn't decrease the size of the _binary_.  That's
what
we're talking about here with the -tiny tree.  Embedded developers want
to
squeeze more code onto smaller flash/rom chips.  Setting
ignore_loglevel
does
prevent these messages from ever being emitted, but they're still in
the
kernel image as dead weight.  It saves noise but doesn't save _space_.

I'm proposing allowing an ignore_loglevel to remove the unused messages
at
compile time so they don't take up space.  Doing that requires the
levels
to
be integers so they can be compared with  or , and the remaining
changes
follow logically.  (To me, anyway...)

Rob
--
One of my most productive days was throwing away 1000 lines of code.
  - Ken Thompson.
___
Celinux-dev mailing list
[EMAIL PROTECTED]
http://tree.celinuxforum.org/mailman/listinfo/celinux-dev
-
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at