Skip to contentSkip to conversation

Add MMC erase and secure erase

PATCH Superseded Adrian Hunter 2 participants 5 messages Jun 13, 2010 – Jun 14, 2010 MMC, SD and SDIO

v2 of 4 Superseded Latest is v4 →

lore
Share & tools
lore
#0 lore raw

v2 cover Add MMC erase and secure erase

Hi

Add ability to do MMC erase and secure erase operations from userspace, using the BLKDISCARD ioctl and a newly created BLKSECDISCARD ioctl.

Changes from V1

- use discard I/O requests instead of implementing BLKDISCARD in mmc_block
- do not validate erase size for MMC erases, instead round to erase size
- rename MMC max_erase to pref_erase and expose it through sysfs as "preferred_erase_size"

Adrian Hunter (4):
block: Add BLKSECDISCARD
mmc: Add erase, secure erase, trim and secure trim operations
mmc_block: Add discard and secure discard support
omap_hsmmc: Add erase capability

block/compat_ioctl.c          |    1 +
block/ioctl.c                 |    5 +
drivers/mmc/card/block.c      |  125 +++++++++++++++-
drivers/mmc/card/queue.c      |   16 ++-
drivers/mmc/core/core.c       |  346 +++++++++++++++++++++++++++++++++++++++++
drivers/mmc/core/core.h       |    2 +
drivers/mmc/core/mmc.c        |   47 ++++++-
drivers/mmc/core/sd.c         |   82 ++++++++++
drivers/mmc/core/sd_ops.c     |   48 ++++++
drivers/mmc/core/sd_ops.h     |    1 +
drivers/mmc/host/omap_hsmmc.c |   13 ++-
include/linux/fs.h            |    1 +
include/linux/mmc/card.h      |   19 +++
include/linux/mmc/core.h      |   19 +++
include/linux/mmc/host.h      |    1 +
include/linux/mmc/mmc.h       |   24 ++-
include/linux/mmc/sd.h        |    5 +
17 files changed, 742 insertions(+), 13 deletions(-)

Regards
Adrian

#1 lore raw

v2 cover Add MMC erase and secure erase

<Now with Jens Axboe correct email address>

Hi

Add ability to do MMC erase and secure erase operations from userspace, using the BLKDISCARD ioctl and a newly created BLKSECDISCARD ioctl.

Changes from V1

- use discard I/O requests instead of implementing BLKDISCARD in mmc_block
- do not validate erase size for MMC erases, instead round to erase size
- rename MMC max_erase to pref_erase and expose it through sysfs as "preferred_erase_size"

Adrian Hunter (4):
block: Add BLKSECDISCARD
mmc: Add erase, secure erase, trim and secure trim operations
mmc_block: Add discard and secure discard support
omap_hsmmc: Add erase capability

block/compat_ioctl.c          |    1 +
block/ioctl.c                 |    5 +
drivers/mmc/card/block.c      |  125 +++++++++++++++-
drivers/mmc/card/queue.c      |   16 ++-
drivers/mmc/core/core.c       |  346 +++++++++++++++++++++++++++++++++++++++++
drivers/mmc/core/core.h       |    2 +
drivers/mmc/core/mmc.c        |   47 ++++++-
drivers/mmc/core/sd.c         |   82 ++++++++++
drivers/mmc/core/sd_ops.c     |   48 ++++++
drivers/mmc/core/sd_ops.h     |    1 +
drivers/mmc/host/omap_hsmmc.c |   13 ++-
include/linux/fs.h            |    1 +
include/linux/mmc/card.h      |   19 +++
include/linux/mmc/core.h      |   19 +++
include/linux/mmc/host.h      |    1 +
include/linux/mmc/mmc.h       |   24 ++-
include/linux/mmc/sd.h        |    5 +
17 files changed, 742 insertions(+), 13 deletions(-)

Regards
Adrian

#2 lore raw
In reply to Adrian Hunter
Quoted 4 lines · Adrian Hunter

Hi

Add ability to do MMC erase and secure erase operations from userspace, using the BLKDISCARD ioctl and a newly created BLKSECDISCARD ioctl.

Have you done any measurement if the use of the block layer changes performance of the discard requests for you? I'd really prefer to send down the secure erase that way, too. This could easily be done by having a DISCARD_SECURE rw flag, which just ORs another flag into the request type field.

#3 lore raw
Quoted 8 lines · Christoph Hellwig
Quoted 4 lines · Adrian Hunter

Hi

Add ability to do MMC erase and secure erase operations from userspace, using the BLKDISCARD ioctl and a newly created BLKSECDISCARD ioctl.

Have you done any measurement if the use of the block layer changes performance of the discard requests for you?

No. For my purposes there will be only 1 discard request for the entire device which will take several minutes to process, so block layer performance is not a factor.

Quoted 4 lines

I'd really prefer to
send down the secure erase that way, too. This could easily be done by having a DISCARD_SECURE rw flag, which just ORs another flag into the request type field.

Needs a bio flag, a request flag, setup the request flag based on the bio flag, prevent merging secure and non-secure discards, prevent drivers doing non-secure discards for secure discards.

Seems like a lot of little changes for something that no one wants. Shouldn't it wait for someone to need it first?

#4 lore raw
Quoted 6 lines · Adrian Hunter

Needs a bio flag, a request flag, setup the request flag based on the bio flag, prevent merging secure and non-secure discards, prevent drivers doing non-secure discards for secure discards.

Seems like a lot of little changes for something that no one wants. Shouldn't it wait for someone to need it first?

I know that some people have asked for this. But if you want to keep it in the driver for now that's fine to me. But in that case please:

(a) make it entirely driver private and leave no traces of it in the block layer
(b) split it into a separate patch from the discard support