* Re: Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix message allocation [not found] <001401c87753$3edf4670$8800a8c0@Nick> @ 2008-02-25 10:14 ` Daniel Drake 2008-02-25 10:47 ` nickcheng 0 siblings, 1 reply; 5+ messages in thread From: Daniel Drake @ 2008-02-25 10:14 UTC (permalink / raw) To: nick.cheng; +Cc: 'James Bottomley', linux-scsi nickcheng wrote: > Hi, > I definitely agree it is in atomic context but why is the memory not for > DMA? > Would you please show me why? It would probably be easier if you could explain where you believe the memory IS used for DMA :) Anyway, looking at ARCMSR_MESSAGE_READ_RQBUFFER current code does this: ver_addr = kmalloc(1032, GFP_ATOMIC); Here are the cases when that buffer is used: checking for successful malloc: not DMA if (!ver_addr) { copying the address: not DMA ptmpQbuffer = ver_addr; memcpying 1 byte into the buffer: not DMA memcpy(ptmpQbuffer, pQbuffer, 1); incrementing address: not DMA ptmpQbuffer++; memcpying from the buffer: not DMA memcpy(pcmdmessagefld->messagedatabuffer, ver_addr, allxfer_len); freeing the buffer: not DMA kfree(ver_addr); Daniel ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix message allocation 2008-02-25 10:14 ` Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix message allocation Daniel Drake @ 2008-02-25 10:47 ` nickcheng 2008-02-25 14:38 ` James Bottomley 0 siblings, 1 reply; 5+ messages in thread From: nickcheng @ 2008-02-25 10:47 UTC (permalink / raw) To: 'Daniel Drake' Cc: 'James Bottomley', linux-scsi, 'erich' Sorry, maybe I did not ask distinctly enough. I mean if I would like to allocate a memory space from ZONE_DMA for atomic context, why can I not use kmalloc(1032, GFP_ATOMIC|GFP_DMA)? In case of lack of GFP_DMA, kmalloc would grab the memory from ZONE_HIGH or ZONE_HIGHMEM, isn't it?(I read it from the textbook of Linux Kernel Development by Robert Love) Or the basic is that you don't think it is necessary to allocate a memory space from DMA area? Please give me some comments. Thank you very much, :-) -----Original Message----- From: Daniel Drake [mailto:dsd@gentoo.org] Sent: Monday, February 25, 2008 6:15 PM To: nick.cheng@areca.com.tw Cc: 'James Bottomley'; linux-scsi@vger.kernel.org Subject: Re: Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix message allocation nickcheng wrote: > Hi, > I definitely agree it is in atomic context but why is the memory not for > DMA? > Would you please show me why? It would probably be easier if you could explain where you believe the memory IS used for DMA :) Anyway, looking at ARCMSR_MESSAGE_READ_RQBUFFER current code does this: ver_addr = kmalloc(1032, GFP_ATOMIC); Here are the cases when that buffer is used: checking for successful malloc: not DMA if (!ver_addr) { copying the address: not DMA ptmpQbuffer = ver_addr; memcpying 1 byte into the buffer: not DMA memcpy(ptmpQbuffer, pQbuffer, 1); incrementing address: not DMA ptmpQbuffer++; memcpying from the buffer: not DMA memcpy(pcmdmessagefld->messagedatabuffer, ver_addr, allxfer_len); freeing the buffer: not DMA kfree(ver_addr); Daniel - To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix message allocation 2008-02-25 10:47 ` nickcheng @ 2008-02-25 14:38 ` James Bottomley 2008-02-26 4:29 ` Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix messageallocation nickcheng 0 siblings, 1 reply; 5+ messages in thread From: James Bottomley @ 2008-02-25 14:38 UTC (permalink / raw) To: nick.cheng; +Cc: 'Daniel Drake', linux-scsi, 'erich' On Mon, 2008-02-25 at 18:47 +0800, nickcheng wrote: > Sorry, maybe I did not ask distinctly enough. > I mean if I would like to allocate a memory space from ZONE_DMA for atomic > context, why can I not use kmalloc(1032, GFP_ATOMIC|GFP_DMA)? > In case of lack of GFP_DMA, kmalloc would grab the memory from ZONE_HIGH or > ZONE_HIGHMEM, isn't it?(I read it from the textbook of Linux Kernel > Development by Robert Love) Um, no that's not true at all. GFP_DMA only allocates memory from ZONE_DMA and fails otherwise. You only need memory from ZONE_DMA if you cannot address physical memory above 24 bits (the old ISA restriction). This only applies if you're a standard ISA device and you're going actually to DMA to the memory in question. Neither of which applies in the arcmsr case, since you're only using the memory as a copy buffer within the kernel (it never sees an actual DMA transfer), and arcmsr doesn't have the ISA restrictions. > Or the basic is that you don't think it is necessary to allocate a memory > space from DMA area? > Please give me some comments. It's unnecessary because you never DMA to it, but even if you did, since arcmsr is a non-ISA device (with 64 bit DMA mask falling back to 32) you can just use ordinary kmalloc'd memory for that (provided you obey the coherence requirements). James ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix messageallocation 2008-02-25 14:38 ` James Bottomley @ 2008-02-26 4:29 ` nickcheng 2008-02-26 16:14 ` James Bottomley 0 siblings, 1 reply; 5+ messages in thread From: nickcheng @ 2008-02-26 4:29 UTC (permalink / raw) To: 'James Bottomley'; +Cc: 'Daniel Drake', linux-scsi James, Appreciate for your answer. One more question: do you think there are any compatibility issues on kmalloc/kfree pair? I just trace the kernel code. It looks like it would not. But I am not quite sure absolutely. May I have your comments? Thank you, -----Original Message----- From: James Bottomley [mailto:James.Bottomley@HansenPartnership.com] Sent: Monday, February 25, 2008 10:39 PM To: nick.cheng@areca.com.tw Cc: 'Daniel Drake'; linux-scsi@vger.kernel.org; 'erich' Subject: RE: Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix messageallocation On Mon, 2008-02-25 at 18:47 +0800, nickcheng wrote: > Sorry, maybe I did not ask distinctly enough. > I mean if I would like to allocate a memory space from ZONE_DMA for atomic > context, why can I not use kmalloc(1032, GFP_ATOMIC|GFP_DMA)? > In case of lack of GFP_DMA, kmalloc would grab the memory from ZONE_HIGH or > ZONE_HIGHMEM, isn't it?(I read it from the textbook of Linux Kernel > Development by Robert Love) Um, no that's not true at all. GFP_DMA only allocates memory from ZONE_DMA and fails otherwise. You only need memory from ZONE_DMA if you cannot address physical memory above 24 bits (the old ISA restriction). This only applies if you're a standard ISA device and you're going actually to DMA to the memory in question. Neither of which applies in the arcmsr case, since you're only using the memory as a copy buffer within the kernel (it never sees an actual DMA transfer), and arcmsr doesn't have the ISA restrictions. > Or the basic is that you don't think it is necessary to allocate a memory > space from DMA area? > Please give me some comments. It's unnecessary because you never DMA to it, but even if you did, since arcmsr is a non-ISA device (with 64 bit DMA mask falling back to 32) you can just use ordinary kmalloc'd memory for that (provided you obey the coherence requirements). James ^ permalink raw reply [flat|nested] 5+ messages in thread
* RE: Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix messageallocation 2008-02-26 4:29 ` Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix messageallocation nickcheng @ 2008-02-26 16:14 ` James Bottomley 0 siblings, 0 replies; 5+ messages in thread From: James Bottomley @ 2008-02-26 16:14 UTC (permalink / raw) To: nick.cheng; +Cc: 'Daniel Drake', linux-scsi On Tue, 2008-02-26 at 12:29 +0800, nickcheng wrote: > James, > Appreciate for your answer. > One more question: do you think there are any compatibility issues on > kmalloc/kfree pair? > I just trace the kernel code. It looks like it would not. > But I am not quite sure absolutely. > May I have your comments? You mean does kmalloc/kfree obey the same rules as the coherent allocators in all regards except coherence ... pretty much, yes. There are some technical differences at the bottom in terms of page alignment, but nothing you need to worry about. James ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2008-02-26 16:14 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <001401c87753$3edf4670$8800a8c0@Nick>
2008-02-25 10:14 ` Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix message allocation Daniel Drake
2008-02-25 10:47 ` nickcheng
2008-02-25 14:38 ` James Bottomley
2008-02-26 4:29 ` Patch added to scsi-rc-fixes-2.6: [SCSI] arcmsr: fix messageallocation nickcheng
2008-02-26 16:14 ` James Bottomley
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox