public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Block layer / MMC: Order of segments in SG-list
@ 2013-06-09 23:20 Joel A Fernandes
  2013-06-10  7:15 ` Jens Axboe
  0 siblings, 1 reply; 3+ messages in thread
From: Joel A Fernandes @ 2013-06-09 23:20 UTC (permalink / raw)
  To: Linux Kernel Mailing List, Linux OMAP List; +Cc: Fernandes, Joel A, axboe

Hi,
So I tried dumping addresses of an SG list in omap_hsmmc driver before
it is passed to DMA.

I found some interesting traces occasionally such as the below SG list
of length 4.

[    6.758716] (0) length=4096, sg virt addr=c1318000, sg phy addr=81318000
[    6.765863] (1) length=4096, sg virt addr=c1317000, sg phy addr=81317000
[    6.773011] (2) length=4096, sg virt addr=c1316000, sg phy addr=81316000
[    6.780087] (3) length=4096, sg virt addr=c1315000, sg phy addr=81315000

What is interesting is these chunks are really physically contiguous
but in reverse order in the list. I think a smarter ordering can
actually improve through put considerably and save precious DMA
resources by not having to allocate slots for parts of contiguous
chunk of physical memory.

Is there any particular reason why this might be the case? I traced to
find that the SG list is actually prepared by mmc_queue_map_sg ->
blk_rq_map_sg

Thanks in advance on any insight on the above.

Regards,
Joel

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

end of thread, other threads:[~2013-06-12  3:34 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-09 23:20 Block layer / MMC: Order of segments in SG-list Joel A Fernandes
2013-06-10  7:15 ` Jens Axboe
2013-06-12  3:34   ` Joel A Fernandes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox