Re: [RFC] User space to kernel space copy optimization

2015-12-05 Thread Sinan Kaya
On 12/5/2015 3:10 AM, Vinod Koul wrote:
> On Mon, Nov 16, 2015 at 04:53:27PM -0500, Sinan Kaya wrote:
>> One of the things I'm interested in is to use a memcpy capable DMA
>> engine HW to optimize user space and kernel space parameter copying.
>>
>> Of course, this will not be viable for all parameter sizes but I can see
>> this being useful. The goal is to save power in the cost of little
>> performance.
>>
>> Before I go and invent my own mechanism, I'd like to have ideas on what
>> an acceptable solution would look like. Especially, I'm looking for a
>> generic implementation that could plug into any DMA engine HW.
> 
> Do you have a proposal on how this generic solution should look like, broad
> contours of the design to start off with and we can start from that point
> 

No, not yet. AFAIK, some of these optimization ideas have been tried by
the Intel IO/AT in the past (kernel 2.6) and were rejected by the
upstream. I wanted to see if anybody had better ideas these days that is
upstream friendly.

-- 
Sinan Kaya
Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
Linux Foundation Collaborative Project
--
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: [RFC] User space to kernel space copy optimization

2015-12-05 Thread Vinod Koul
On Mon, Nov 16, 2015 at 04:53:27PM -0500, Sinan Kaya wrote:
> One of the things I'm interested in is to use a memcpy capable DMA
> engine HW to optimize user space and kernel space parameter copying.
> 
> Of course, this will not be viable for all parameter sizes but I can see
> this being useful. The goal is to save power in the cost of little
> performance.
> 
> Before I go and invent my own mechanism, I'd like to have ideas on what
> an acceptable solution would look like. Especially, I'm looking for a
> generic implementation that could plug into any DMA engine HW.

Do you have a proposal on how this generic solution should look like, broad
contours of the design to start off with and we can start from that point

-- 
~Vinod
--
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: [RFC] User space to kernel space copy optimization

2015-12-05 Thread Sinan Kaya
On 12/5/2015 3:10 AM, Vinod Koul wrote:
> On Mon, Nov 16, 2015 at 04:53:27PM -0500, Sinan Kaya wrote:
>> One of the things I'm interested in is to use a memcpy capable DMA
>> engine HW to optimize user space and kernel space parameter copying.
>>
>> Of course, this will not be viable for all parameter sizes but I can see
>> this being useful. The goal is to save power in the cost of little
>> performance.
>>
>> Before I go and invent my own mechanism, I'd like to have ideas on what
>> an acceptable solution would look like. Especially, I'm looking for a
>> generic implementation that could plug into any DMA engine HW.
> 
> Do you have a proposal on how this generic solution should look like, broad
> contours of the design to start off with and we can start from that point
> 

No, not yet. AFAIK, some of these optimization ideas have been tried by
the Intel IO/AT in the past (kernel 2.6) and were rejected by the
upstream. I wanted to see if anybody had better ideas these days that is
upstream friendly.

-- 
Sinan Kaya
Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
Linux Foundation Collaborative Project
--
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: [RFC] User space to kernel space copy optimization

2015-12-05 Thread Vinod Koul
On Mon, Nov 16, 2015 at 04:53:27PM -0500, Sinan Kaya wrote:
> One of the things I'm interested in is to use a memcpy capable DMA
> engine HW to optimize user space and kernel space parameter copying.
> 
> Of course, this will not be viable for all parameter sizes but I can see
> this being useful. The goal is to save power in the cost of little
> performance.
> 
> Before I go and invent my own mechanism, I'd like to have ideas on what
> an acceptable solution would look like. Especially, I'm looking for a
> generic implementation that could plug into any DMA engine HW.

Do you have a proposal on how this generic solution should look like, broad
contours of the design to start off with and we can start from that point

-- 
~Vinod
--
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: [RFC] User space to kernel space copy optimization

2015-11-17 Thread Jiang, Dave
On Mon, 2015-11-16 at 23:19 +, Sinan Kaya wrote:
> On 11/16/2015 5:57 PM, Jiang, Dave wrote:
> > > One of the things I'm interested in is to use a memcpy capable
> > > DMA
> > > > engine HW to optimize user space and kernel space parameter
> > > > copying.
> > Have you looked at why NET_DMA was deprecated and using DMA engine
> > to
> > do kernel->user copy could be a problem?
> > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/com
> > mit/
> > ?id=77873803363c
> > 
> 
> As far as I know, the problem was the TCP/IP stack trying to work on
> a
> buffer that was given to the DMA engine for moving. It was causing
> stale
> data problems.
> 
> The goal was to let DMA engine move the data while TCP/IP stack was
> working on something else. Then, synchronize on a known point. Of
> course, when above violation happens; things break.
> 
> Are you expecting a similar problem on user space to kernel space
> interaction? I think the ownership buffers are pretty much defined,
> isn't it?

No. I thought you were investigating both ways so thought you might
need to be aware. 

> 
> 
> -- 
> Sinan Kaya
> Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center,
> Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
> Linux Foundation Collaborative Project

Re: [RFC] User space to kernel space copy optimization

2015-11-17 Thread Jiang, Dave
On Mon, 2015-11-16 at 23:19 +, Sinan Kaya wrote:
> On 11/16/2015 5:57 PM, Jiang, Dave wrote:
> > > One of the things I'm interested in is to use a memcpy capable
> > > DMA
> > > > engine HW to optimize user space and kernel space parameter
> > > > copying.
> > Have you looked at why NET_DMA was deprecated and using DMA engine
> > to
> > do kernel->user copy could be a problem?
> > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/com
> > mit/
> > ?id=77873803363c
> > 
> 
> As far as I know, the problem was the TCP/IP stack trying to work on
> a
> buffer that was given to the DMA engine for moving. It was causing
> stale
> data problems.
> 
> The goal was to let DMA engine move the data while TCP/IP stack was
> working on something else. Then, synchronize on a known point. Of
> course, when above violation happens; things break.
> 
> Are you expecting a similar problem on user space to kernel space
> interaction? I think the ownership buffers are pretty much defined,
> isn't it?

No. I thought you were investigating both ways so thought you might
need to be aware. 

> 
> 
> -- 
> Sinan Kaya
> Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center,
> Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
> Linux Foundation Collaborative Project

Re: [RFC] User space to kernel space copy optimization

2015-11-16 Thread Sinan Kaya
On 11/16/2015 5:57 PM, Jiang, Dave wrote:
>> One of the things I'm interested in is to use a memcpy capable DMA
>> > engine HW to optimize user space and kernel space parameter copying.
> Have you looked at why NET_DMA was deprecated and using DMA engine to
> do kernel->user copy could be a problem?
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/
> ?id=77873803363c
> 

As far as I know, the problem was the TCP/IP stack trying to work on a
buffer that was given to the DMA engine for moving. It was causing stale
data problems.

The goal was to let DMA engine move the data while TCP/IP stack was
working on something else. Then, synchronize on a known point. Of
course, when above violation happens; things break.

Are you expecting a similar problem on user space to kernel space
interaction? I think the ownership buffers are pretty much defined,
isn't it?


-- 
Sinan Kaya
Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
Linux Foundation Collaborative Project
--
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: [RFC] User space to kernel space copy optimization

2015-11-16 Thread Jiang, Dave


On Mon, 2015-11-16 at 21:53 +, Sinan Kaya wrote:
> One of the things I'm interested in is to use a memcpy capable DMA
> engine HW to optimize user space and kernel space parameter copying.

Have you looked at why NET_DMA was deprecated and using DMA engine to
do kernel->user copy could be a problem?
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/
?id=77873803363c

> 
> Of course, this will not be viable for all parameter sizes but I can
> see
> this being useful. The goal is to save power in the cost of little
> performance.
> 
> Before I go and invent my own mechanism, I'd like to have ideas on
> what
> an acceptable solution would look like. Especially, I'm looking for a
> generic implementation that could plug into any DMA engine HW.
> 
> -- 
> Sinan Kaya
> Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center,
> Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
> Linux Foundation Collaborative Project
> --
> To unsubscribe from this list: send the line "unsubscribe dmaengine"
> in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Re: [RFC] User space to kernel space copy optimization

2015-11-16 Thread Jiang, Dave


On Mon, 2015-11-16 at 21:53 +, Sinan Kaya wrote:
> One of the things I'm interested in is to use a memcpy capable DMA
> engine HW to optimize user space and kernel space parameter copying.

Have you looked at why NET_DMA was deprecated and using DMA engine to
do kernel->user copy could be a problem?
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/
?id=77873803363c

> 
> Of course, this will not be viable for all parameter sizes but I can
> see
> this being useful. The goal is to save power in the cost of little
> performance.
> 
> Before I go and invent my own mechanism, I'd like to have ideas on
> what
> an acceptable solution would look like. Especially, I'm looking for a
> generic implementation that could plug into any DMA engine HW.
> 
> -- 
> Sinan Kaya
> Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center,
> Inc.
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
> Linux Foundation Collaborative Project
> --
> To unsubscribe from this list: send the line "unsubscribe dmaengine"
> in
> the body of a message to majord...@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Re: [RFC] User space to kernel space copy optimization

2015-11-16 Thread Sinan Kaya
On 11/16/2015 5:57 PM, Jiang, Dave wrote:
>> One of the things I'm interested in is to use a memcpy capable DMA
>> > engine HW to optimize user space and kernel space parameter copying.
> Have you looked at why NET_DMA was deprecated and using DMA engine to
> do kernel->user copy could be a problem?
> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/
> ?id=77873803363c
> 

As far as I know, the problem was the TCP/IP stack trying to work on a
buffer that was given to the DMA engine for moving. It was causing stale
data problems.

The goal was to let DMA engine move the data while TCP/IP stack was
working on something else. Then, synchronize on a known point. Of
course, when above violation happens; things break.

Are you expecting a similar problem on user space to kernel space
interaction? I think the ownership buffers are pretty much defined,
isn't it?


-- 
Sinan Kaya
Qualcomm Technologies, Inc. on behalf of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a
Linux Foundation Collaborative Project
--
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/