linux-scsi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH] IB/iser: do I/O path allocations with GFP_NOIO
       [not found] <Pine.LNX.4.64.0605301448001.734@zuben>
@ 2006-05-30 19:50 ` Mike Christie
  2006-05-30 20:35   ` Roland Dreier
  2006-05-31 14:29   ` FUJITA Tomonori
  0 siblings, 2 replies; 5+ messages in thread
From: Mike Christie @ 2006-05-30 19:50 UTC (permalink / raw)
  To: Or Gerlitz; +Cc: rdreier, openib-general, linux-scsi

Should iser patches have linux-scsi ccd on them in the future? And
should they go through the scsi maintainer normally (I understand they
cannot now since James does not have all the infinniband bits)? I am
really just trying to avoid any coordinatation issues that come about by
having core iscsi and tcp iscsi patched sent to the scsi maintainer then
having to have iser going through Roland.

For example I left a bit in the core iscsi code so I would not break
iser. Now iser is updating their code, so we do not need that bit, but
Or's patch missed the cleanup. If we sent everything through one
maintainer then we could have cleaned everything up in one pass.

Does srp go from openib-general and Roland then to lkml? For iscsi we do
not go through net-dev and we live in drivers/scsi so maybe we are the
odd driver?:) What is the proper or normal procedure?





Or Gerlitz wrote:
> Thanks for Mike Christie for pointing this out - Or.
> 
> a block driver is not allowed to use GFP_KERNEL allocations on its I/O code
> path since the allocation might require I/O (eg to pageout other memory),
> resulting in either deadlock or tightloop.
> 
> move I/O path (queuecommand) allocations to be done with GFP_NOIO
> 
> Signed-off-by: Or Gerlitz <ogerlitz@voltaire.com>
> 
> diff --git a/drivers/infiniband/ulp/iser/iser_initiator.c b/drivers/infiniband/ulp/iser/iser_initiator.c
> index 2703bb0..073e7b5 100644
> --- a/drivers/infiniband/ulp/iser/iser_initiator.c
> +++ b/drivers/infiniband/ulp/iser/iser_initiator.c
> @@ -225,7 +225,7 @@ static int iser_post_receive_control(str
>  	struct iser_device  *device = iser_conn->ib_conn->device;
>  	int rx_data_size, err = 0;
> 
> -	rx_desc = kmem_cache_alloc(ig.desc_cache, GFP_KERNEL);
> +	rx_desc = kmem_cache_alloc(ig.desc_cache, GFP_NOIO);
>  	if (rx_desc == NULL) {
>  		iser_err("Failed to alloc desc for post recv\n");
>  		return -ENOMEM;
> @@ -238,7 +238,7 @@ static int iser_post_receive_control(str
>  	else /* FIXME till user space sets conn->max_recv_dlength correctly */
>  		rx_data_size = 128;
> 
> -	rx_desc->data = kmalloc(rx_data_size, GFP_KERNEL);
> +	rx_desc->data = kmalloc(rx_data_size, GFP_NOIO);
>  	if (rx_desc->data == NULL) {
>  		iser_err("Failed to alloc data buf for post recv\n");
>  		err = -ENOMEM;
> @@ -467,7 +467,7 @@ int iser_send_data_out(struct iscsi_conn
>  	iser_dbg("%s itt %d dseg_len %d offset %d\n",
>  		 __func__,(int)itt,(int)data_seg_len,(int)buf_offset);
> 
> -	tx_desc = kmem_cache_alloc(ig.desc_cache, GFP_KERNEL);
> +	tx_desc = kmem_cache_alloc(ig.desc_cache, GFP_NOIO);
>  	if (tx_desc == NULL) {
>  		iser_err("Failed to alloc desc for post dataout\n");
>  		return -ENOMEM;
> diff --git a/drivers/infiniband/ulp/iser/iser_memory.c b/drivers/infiniband/ulp/iser/iser_memory.c
> index 0881f55..31950a5 100644
> --- a/drivers/infiniband/ulp/iser/iser_memory.c
> +++ b/drivers/infiniband/ulp/iser/iser_memory.c
> @@ -111,10 +111,10 @@ int iser_start_rdma_unaligned_sg(struct
>  	unsigned long  cmd_data_len = data->data_len;
> 
>  	if (cmd_data_len > ISER_KMALLOC_THRESHOLD)
> -		mem = (void *)__get_free_pages(GFP_KERNEL,
> +		mem = (void *)__get_free_pages(GFP_NOIO,
>  		      long_log2(roundup_pow_of_two(cmd_data_len)) - PAGE_SHIFT);
>  	else
> -		mem = kmalloc(cmd_data_len, GFP_KERNEL);
> +		mem = kmalloc(cmd_data_len, GFP_NOIO);
> 
>  	if (mem == NULL) {
>  		iser_err("Failed to allocate mem size %d %d for copying sglist\n",


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] IB/iser: do I/O path allocations with GFP_NOIO
  2006-05-30 19:50 ` [PATCH] IB/iser: do I/O path allocations with GFP_NOIO Mike Christie
@ 2006-05-30 20:35   ` Roland Dreier
  2006-05-31 12:55     ` Or Gerlitz
  2006-05-31 14:29   ` FUJITA Tomonori
  1 sibling, 1 reply; 5+ messages in thread
From: Roland Dreier @ 2006-05-30 20:35 UTC (permalink / raw)
  To: Mike Christie; +Cc: Or Gerlitz, openib-general, linux-scsi

    Mike> Should iser patches have linux-scsi ccd on them in the
    Mike> future? And should they go through the scsi maintainer
    Mike> normally (I understand they cannot now since James does not
    Mike> have all the infinniband bits)? I am really just trying to
    Mike> avoid any coordinatation issues that come about by having
    Mike> core iscsi and tcp iscsi patched sent to the scsi maintainer
    Mike> then having to have iser going through Roland.

    Mike> Does srp go from openib-general and Roland then to lkml? For
    Mike> iscsi we do not go through net-dev and we live in
    Mike> drivers/scsi so maybe we are the odd driver?:) What is the
    Mike> proper or normal procedure?

It's a problem because SRP and iSER are straddling both the SCSI and
IB worlds.  Probably the best policy is to cc all relevant mailing
lists (at least linux-scsi and openib-general) whenever there's a
doubt about who should see something.

As far as merging patches goes, I've been merging SRP changes directly
to Linus, except for generic fixes to <scsi/srp.h>, which I've been
sending through James.  Or felt that iSCSI should be merged through my
tree, but I have no problem if in the future patches bypass my tree.
(But I would like to be cc'ed on changes to IB stuff, especially core
things outside of specific drivers)

(Which all reminds me I have a question about SCSI EH and SRP to send
to the linux-scsi list...)

 - R.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] IB/iser: do I/O path allocations with GFP_NOIO
  2006-05-30 20:35   ` Roland Dreier
@ 2006-05-31 12:55     ` Or Gerlitz
  0 siblings, 0 replies; 5+ messages in thread
From: Or Gerlitz @ 2006-05-31 12:55 UTC (permalink / raw)
  To: Mike Christie; +Cc: Roland Dreier, openib-general, linux-scsi

Roland Dreier wrote:
> It's a problem because SRP and iSER are straddling both the SCSI and
> IB worlds.  Probably the best policy is to cc all relevant mailing
> lists (at least linux-scsi and openib-general) whenever there's a
> doubt about who should see something.

We are monitoring linux-scsi for tracking iscsi upstream updates.

> As far as merging patches goes, I've been merging SRP changes directly
> to Linus, except for generic fixes to <scsi/srp.h>, which I've been
> sending through James.  Or felt that iSCSI should be merged through my
> tree, but I have no problem if in the future patches bypass my tree.
> (But I would like to be cc'ed on changes to IB stuff, especially core
> things outside of specific drivers)

At this point, we prefer that iser related updates/merges would go 
through Roland, the IB maintainer, if this poses a problem for 
scsi/iscsi updates we are open to send our updates/merges via the scsi 
maintainer.

Or.




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] IB/iser: do I/O path allocations with GFP_NOIO
  2006-05-30 19:50 ` [PATCH] IB/iser: do I/O path allocations with GFP_NOIO Mike Christie
  2006-05-30 20:35   ` Roland Dreier
@ 2006-05-31 14:29   ` FUJITA Tomonori
  2006-05-31 14:41     ` Roland Dreier
  1 sibling, 1 reply; 5+ messages in thread
From: FUJITA Tomonori @ 2006-05-31 14:29 UTC (permalink / raw)
  To: michaelc; +Cc: ogerlitz, rdreier, openib-general, linux-scsi

From: Mike Christie <michaelc@cs.wisc.edu>
Subject: Re: [PATCH] IB/iser: do I/O path allocations with GFP_NOIO
Date: Tue, 30 May 2006 14:50:44 -0500

> Should iser patches have linux-scsi ccd on them in the future? And
> should they go through the scsi maintainer normally (I understand they
> cannot now since James does not have all the infinniband bits)? I am
> really just trying to avoid any coordinatation issues that come about by
> having core iscsi and tcp iscsi patched sent to the scsi maintainer then
> having to have iser going through Roland.
> 
> For example I left a bit in the core iscsi code so I would not break
> iser. Now iser is updating their code, so we do not need that bit, but
> Or's patch missed the cleanup. If we sent everything through one
> maintainer then we could have cleaned everything up in one pass.

Roland, as proposed in the past, how about moving the iSER and SRP
drivers to drivers/scsi? As you said, they straddle in SCSI and IB
worlds, however, they are just LLDs like iscsi_tcp, which straddle in
SCSI and TCP worlds.

That would help to avoid coordinatation issues too.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] IB/iser: do I/O path allocations with GFP_NOIO
  2006-05-31 14:29   ` FUJITA Tomonori
@ 2006-05-31 14:41     ` Roland Dreier
  0 siblings, 0 replies; 5+ messages in thread
From: Roland Dreier @ 2006-05-31 14:41 UTC (permalink / raw)
  To: FUJITA Tomonori; +Cc: michaelc, ogerlitz, openib-general, linux-scsi

    > Roland, as proposed in the past, how about moving the iSER
    > and SRP drivers to drivers/scsi? As you said, they
    > straddle in SCSI and IB worlds, however, they are just
    > LLDs like iscsi_tcp, which straddle in SCSI and TCP
    > worlds.

I have no problem with that, although in general I'm not thrilled
about moving files around, since it usually is churn without a
technical advantage.

If SRP and iSER were in drivers/scsi, would that mean James would have
to maintain them?  That would be a change in workflow.

 - R.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-05-31 14:41 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <Pine.LNX.4.64.0605301448001.734@zuben>
2006-05-30 19:50 ` [PATCH] IB/iser: do I/O path allocations with GFP_NOIO Mike Christie
2006-05-30 20:35   ` Roland Dreier
2006-05-31 12:55     ` Or Gerlitz
2006-05-31 14:29   ` FUJITA Tomonori
2006-05-31 14:41     ` Roland Dreier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).