Re: [GIT PULL] I/OAT updates for 2.6.22

2007-05-02 Thread Chris Leech
On Wed, 2007-05-02 at 15:44 -0700, David Miller wrote:
> 
> Chrstopher, I really really would like you to post these patches early
> and often to [EMAIL PROTECTED] especially because you are
> touching the TCP code.

You're right, I should have sent this to netdev as well.  I'm Sorry.

As for early and often, I have posted all of these patches to netdev,
and made suggested changes, and re-posted.

And when I have other networking changes, you can bet they'll get sent
to netdev for review first before I think about asking that they be
included.

> You aren't doing this, for several rounds, and just submitting your
> stuff directly to Linus, Andrew, and lkml, and it's starting to annoy
> me greatly.

For several rounds, I've been posting patches that go nowhere.  I
honestly don't care if they go straight to Linus, through you, or
through Andrew.

- Chris
-
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: [GIT PULL] I/OAT updates for 2.6.22

2007-05-02 Thread David Miller

Chrstopher, I really really would like you to post these patches early
and often to [EMAIL PROTECTED] especially because you are
touching the TCP code.

You aren't doing this, for several rounds, and just submitting your
stuff directly to Linus, Andrew, and lkml, and it's starting to annoy
me greatly.

Thanks in advance.
-
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/


[GIT PULL] I/OAT updates for 2.6.22

2007-05-02 Thread Chris Leech
The following changes since commit dc87c3985e9b442c60994308a96f887579addc39:
  Linus Torvalds (1):
libata: honour host controllers that want just one host

are found in the git repository at:

  git://lost.foo-projects.org/~cleech/linux-2.6

Andrew Morton (1):
  I/OAT: warning fix

Chris Leech (6):
  ioatdma: Push pending transactions to hardware more frequently
  ioatdma: Remove the wrappers around read(bwl)/write(bwl) in ioatdma
  ioatdma: Remove the use of writeq from the ioatdma driver
  I/OAT: Add documentation for the tcp_dma_copybreak sysctl
  I/OAT: Add entries to MAINTAINERS for the DMA memcpy subsystem and ioatdma
  I/OAT: Only offload copies for TCP when there will be a context switch

Dan Aloni (1):
  I/OAT: fix I/OAT for kexec

Jeff Garzik (1):
  drivers/dma: handle sysfs errors

 Documentation/networking/ip-sysctl.txt |6 ++
 MAINTAINERS|   12 +++
 drivers/dma/dmaengine.c|   22 ++-
 drivers/dma/ioatdma.c  |   81 --
 drivers/dma/ioatdma_io.h   |  118 
 net/ipv4/tcp.c |   26 +--
 6 files changed, 100 insertions(+), 165 deletions(-)
 delete mode 100644 drivers/dma/ioatdma_io.h

commit 3d89ce83ead8eed2d638f5563af7f88c1ebd9acf
Author: Dan Aloni <[EMAIL PROTECTED]>
Date:   Wed May 2 15:25:13 2007 -0700

I/OAT: fix I/OAT for kexec

Under kexec, I/OAT initialization breaks over busy resources because the
previous kernel did not release them.

I'm not sure this fix can be considered a complete one but it works for me.
 I guess something similar to the *_remove method should occur there..

Signed-off-by: Dan Aloni <[EMAIL PROTECTED]>
Signed-off-by: Chris Leech <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>

diff --git a/drivers/dma/ioatdma.c b/drivers/dma/ioatdma.c
index cbf93ca..1d259e5 100644
--- a/drivers/dma/ioatdma.c
+++ b/drivers/dma/ioatdma.c
@@ -41,6 +41,7 @@
 
 /* internal functions */
 static int __devinit ioat_probe(struct pci_dev *pdev, const struct 
pci_device_id *ent);
+static void ioat_shutdown(struct pci_dev *pdev);
 static void __devexit ioat_remove(struct pci_dev *pdev);
 
 static int enumerate_dma_channels(struct ioat_device *device)
@@ -557,6 +558,7 @@ static struct pci_driver ioat_pci_drv = {
.name   = "ioatdma",
.id_table = ioat_pci_tbl,
.probe  = ioat_probe,
+   .shutdown = ioat_shutdown,
.remove = __devexit_p(ioat_remove),
 };
 
@@ -781,9 +783,20 @@ err_request_regions:
 err_set_dma_mask:
pci_disable_device(pdev);
 err_enable_device:
+
+   printk(KERN_ERR "Intel(R) I/OAT DMA Engine initialization failed\n");
+
return err;
 }
 
+static void ioat_shutdown(struct pci_dev *pdev)
+{
+   struct ioat_device *device;
+   device = pci_get_drvdata(pdev);
+
+   dma_async_device_unregister(>common);
+}
+
 static void __devexit ioat_remove(struct pci_dev *pdev)
 {
struct ioat_device *device;

commit 65e6d03f6c1bec1607febe9dfdc8a99b572b882f
Author: Andrew Morton <[EMAIL PROTECTED]>
Date:   Wed May 2 15:25:12 2007 -0700

I/OAT: warning fix
net/ipv4/tcp.c: In function 'tcp_recvmsg':
net/ipv4/tcp.c:: warning: unused variable 'available'

Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Signed-off-by: Chris Leech <[EMAIL PROTECTED]>

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index e97b45a..9dfa2b6 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1113,7 +1113,6 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, 
struct msghdr *msg,
long timeo;
struct task_struct *user_recv = NULL;
int copied_early = 0;
-   int available = 0;
struct sk_buff *skb;
 
lock_sock(sk);
@@ -1142,15 +1141,22 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, 
struct msghdr *msg,
tp->ucopy.dma_chan = NULL;
preempt_disable();
skb = skb_peek_tail(>sk_receive_queue);
-   if (skb)
-   available = TCP_SKB_CB(skb)->seq + skb->len - (*seq);
-   if ((available < target) &&
-   (len > sysctl_tcp_dma_copybreak) && !(flags & MSG_PEEK) &&
-   !sysctl_tcp_low_latency && __get_cpu_var(softnet_data).net_dma) {
-   preempt_enable_no_resched();
-   tp->ucopy.pinned_list = dma_pin_iovec_pages(msg->msg_iov, len);
-   } else
-   preempt_enable_no_resched();
+   {
+   int available = 0;
+
+   if (skb)
+   available = TCP_SKB_CB(skb)->seq + skb->len - (*seq);
+   if ((available < target) &&
+   (len > sysctl_tcp_dma_copybreak) && !(flags & MSG_PEEK) &&
+   !sysctl_tcp_low_latency &&
+   __get_cpu_var(softnet_data).net_dma) {
+   preempt_enable_no_resched();
+   

[GIT PULL] I/OAT updates for 2.6.22

2007-05-02 Thread Chris Leech
The following changes since commit dc87c3985e9b442c60994308a96f887579addc39:
  Linus Torvalds (1):
libata: honour host controllers that want just one host

are found in the git repository at:

  git://lost.foo-projects.org/~cleech/linux-2.6

Andrew Morton (1):
  I/OAT: warning fix

Chris Leech (6):
  ioatdma: Push pending transactions to hardware more frequently
  ioatdma: Remove the wrappers around read(bwl)/write(bwl) in ioatdma
  ioatdma: Remove the use of writeq from the ioatdma driver
  I/OAT: Add documentation for the tcp_dma_copybreak sysctl
  I/OAT: Add entries to MAINTAINERS for the DMA memcpy subsystem and ioatdma
  I/OAT: Only offload copies for TCP when there will be a context switch

Dan Aloni (1):
  I/OAT: fix I/OAT for kexec

Jeff Garzik (1):
  drivers/dma: handle sysfs errors

 Documentation/networking/ip-sysctl.txt |6 ++
 MAINTAINERS|   12 +++
 drivers/dma/dmaengine.c|   22 ++-
 drivers/dma/ioatdma.c  |   81 --
 drivers/dma/ioatdma_io.h   |  118 
 net/ipv4/tcp.c |   26 +--
 6 files changed, 100 insertions(+), 165 deletions(-)
 delete mode 100644 drivers/dma/ioatdma_io.h

commit 3d89ce83ead8eed2d638f5563af7f88c1ebd9acf
Author: Dan Aloni [EMAIL PROTECTED]
Date:   Wed May 2 15:25:13 2007 -0700

I/OAT: fix I/OAT for kexec

Under kexec, I/OAT initialization breaks over busy resources because the
previous kernel did not release them.

I'm not sure this fix can be considered a complete one but it works for me.
 I guess something similar to the *_remove method should occur there..

Signed-off-by: Dan Aloni [EMAIL PROTECTED]
Signed-off-by: Chris Leech [EMAIL PROTECTED]
Signed-off-by: Andrew Morton [EMAIL PROTECTED]

diff --git a/drivers/dma/ioatdma.c b/drivers/dma/ioatdma.c
index cbf93ca..1d259e5 100644
--- a/drivers/dma/ioatdma.c
+++ b/drivers/dma/ioatdma.c
@@ -41,6 +41,7 @@
 
 /* internal functions */
 static int __devinit ioat_probe(struct pci_dev *pdev, const struct 
pci_device_id *ent);
+static void ioat_shutdown(struct pci_dev *pdev);
 static void __devexit ioat_remove(struct pci_dev *pdev);
 
 static int enumerate_dma_channels(struct ioat_device *device)
@@ -557,6 +558,7 @@ static struct pci_driver ioat_pci_drv = {
.name   = ioatdma,
.id_table = ioat_pci_tbl,
.probe  = ioat_probe,
+   .shutdown = ioat_shutdown,
.remove = __devexit_p(ioat_remove),
 };
 
@@ -781,9 +783,20 @@ err_request_regions:
 err_set_dma_mask:
pci_disable_device(pdev);
 err_enable_device:
+
+   printk(KERN_ERR Intel(R) I/OAT DMA Engine initialization failed\n);
+
return err;
 }
 
+static void ioat_shutdown(struct pci_dev *pdev)
+{
+   struct ioat_device *device;
+   device = pci_get_drvdata(pdev);
+
+   dma_async_device_unregister(device-common);
+}
+
 static void __devexit ioat_remove(struct pci_dev *pdev)
 {
struct ioat_device *device;

commit 65e6d03f6c1bec1607febe9dfdc8a99b572b882f
Author: Andrew Morton [EMAIL PROTECTED]
Date:   Wed May 2 15:25:12 2007 -0700

I/OAT: warning fix
net/ipv4/tcp.c: In function 'tcp_recvmsg':
net/ipv4/tcp.c:: warning: unused variable 'available'

Signed-off-by: Andrew Morton [EMAIL PROTECTED]
Signed-off-by: Chris Leech [EMAIL PROTECTED]

diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index e97b45a..9dfa2b6 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1113,7 +1113,6 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, 
struct msghdr *msg,
long timeo;
struct task_struct *user_recv = NULL;
int copied_early = 0;
-   int available = 0;
struct sk_buff *skb;
 
lock_sock(sk);
@@ -1142,15 +1141,22 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, 
struct msghdr *msg,
tp-ucopy.dma_chan = NULL;
preempt_disable();
skb = skb_peek_tail(sk-sk_receive_queue);
-   if (skb)
-   available = TCP_SKB_CB(skb)-seq + skb-len - (*seq);
-   if ((available  target) 
-   (len  sysctl_tcp_dma_copybreak)  !(flags  MSG_PEEK) 
-   !sysctl_tcp_low_latency  __get_cpu_var(softnet_data).net_dma) {
-   preempt_enable_no_resched();
-   tp-ucopy.pinned_list = dma_pin_iovec_pages(msg-msg_iov, len);
-   } else
-   preempt_enable_no_resched();
+   {
+   int available = 0;
+
+   if (skb)
+   available = TCP_SKB_CB(skb)-seq + skb-len - (*seq);
+   if ((available  target) 
+   (len  sysctl_tcp_dma_copybreak)  !(flags  MSG_PEEK) 
+   !sysctl_tcp_low_latency 
+   __get_cpu_var(softnet_data).net_dma) {
+   preempt_enable_no_resched();
+   tp-ucopy.pinned_list =
+  

Re: [GIT PULL] I/OAT updates for 2.6.22

2007-05-02 Thread David Miller

Chrstopher, I really really would like you to post these patches early
and often to [EMAIL PROTECTED] especially because you are
touching the TCP code.

You aren't doing this, for several rounds, and just submitting your
stuff directly to Linus, Andrew, and lkml, and it's starting to annoy
me greatly.

Thanks in advance.
-
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: [GIT PULL] I/OAT updates for 2.6.22

2007-05-02 Thread Chris Leech
On Wed, 2007-05-02 at 15:44 -0700, David Miller wrote:
 
 Chrstopher, I really really would like you to post these patches early
 and often to [EMAIL PROTECTED] especially because you are
 touching the TCP code.

You're right, I should have sent this to netdev as well.  I'm Sorry.

As for early and often, I have posted all of these patches to netdev,
and made suggested changes, and re-posted.

And when I have other networking changes, you can bet they'll get sent
to netdev for review first before I think about asking that they be
included.

 You aren't doing this, for several rounds, and just submitting your
 stuff directly to Linus, Andrew, and lkml, and it's starting to annoy
 me greatly.

For several rounds, I've been posting patches that go nowhere.  I
honestly don't care if they go straight to Linus, through you, or
through Andrew.

- Chris
-
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/