From: labbott@redhat.com (Laura Abbott)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCHv2 00/21] Ion clean in preparation for moving out of staging
Date: Fri, 17 Mar 2017 17:54:32 -0700 [thread overview]
Message-ID: <1489798493-16600-1-git-send-email-labbott@redhat.com> (raw)
Hi,
This is v2 of the series to do some serious Ion clean up in preparation for
moving out of staging. I got good feedback last time so this series mostly
attempts to address that feedback and do more still more cleanup. Highlights:
- All calls to DMA APIs should now be with a real actual proper device
structure
- Patch to stop setting sg_dma_address manually now included
- Fix for a bug in the query interface
- Removal of custom ioctl interface
- Removal of import interface
- Removal of any notion of using Ion as an in kernel interface.
- Cleanup of ABI so compat interface is no longer needed
- Deletion of a bit more platform code
- Combined heap enumeration and heap registration code up so there are fewer
layers of abstraction
- Some general cleanup and header reduction.
- Removal of both the ion_client and ion_handle structures since these mostly
become redundant. As a result, Ion only returns a dma_buf fd. The overall
result is that the only Ion interfaces are the query ioctl and the alloc
ioctl.
The following are still TODOs/open problems:
- Sumit's comments about the CMA naming.
- Bindings/platform for chunk and carveout heap
- There was some discussion about making the sg_table duplication generic. I
got bogged down in handling some of the edge cases for generic handling
so I put this aside. Making it generic is still something that should happen.
- More fine-grained support for restricting heap access. There are good
arguments to be made for having a way for having good integration with
selinux and other policy mechanisms.
- While not on the original list, there is still no good good test standalone
test framework. I noticed that the existing ion_test was fairly generic so I
proposed moving it to dma_buf. Daniel Vetter suggested just using the VGEM
module instead. Ideally, the tests can live as part of some other existing
test set (drm tests maybe?)
Feedback appreciated as always.
Thanks,
Laura
Laura Abbott (21):
cma: Store a name in the cma structure
cma: Introduce cma_for_each_area
staging: android: ion: Remove dmap_cnt
staging: android: ion: Remove alignment from allocation field
staging: android: ion: Duplicate sg_table
staging: android: ion: Call dma_map_sg for syncing and mapping
staging: android: ion: Remove page faulting support
staging: android: ion: Remove crufty cache support
staging: android: ion: Remove custom ioctl interface
staging: android: ion: Remove import interface
staging: android: ion: Remove duplicate ION_IOC_MAP
staging: android: ion: Remove old platform support
staging: android: ion: Use CMA APIs directly
staging: android: ion: Stop butchering the DMA address
staging: android: ion: Break the ABI in the name of forward progress
staging: android: ion: Get rid of ion_phys_addr_t
staging: android: ion: Collapse internal header files
staging: android: ion: Rework heap registration/enumeration
staging: android: ion: Drop ion_map_kernel interface
staging: android: ion: Remove ion_handle and ion_client
staging: android: ion: Set query return value
drivers/base/dma-contiguous.c | 5 +-
drivers/staging/android/ion/Kconfig | 56 +-
drivers/staging/android/ion/Makefile | 18 +-
drivers/staging/android/ion/compat_ion.c | 195 ----
drivers/staging/android/ion/compat_ion.h | 29 -
drivers/staging/android/ion/hisilicon/Kconfig | 5 -
drivers/staging/android/ion/hisilicon/Makefile | 1 -
drivers/staging/android/ion/hisilicon/hi6220_ion.c | 113 --
drivers/staging/android/ion/ion-ioctl.c | 85 +-
drivers/staging/android/ion/ion.c | 1164 +++-----------------
drivers/staging/android/ion/ion.h | 393 +++++--
drivers/staging/android/ion/ion_carveout_heap.c | 37 +-
drivers/staging/android/ion/ion_chunk_heap.c | 27 +-
drivers/staging/android/ion/ion_cma_heap.c | 125 +--
drivers/staging/android/ion/ion_dummy_driver.c | 156 ---
drivers/staging/android/ion/ion_heap.c | 68 --
drivers/staging/android/ion/ion_of.c | 184 ----
drivers/staging/android/ion/ion_of.h | 37 -
drivers/staging/android/ion/ion_page_pool.c | 6 +-
drivers/staging/android/ion/ion_priv.h | 473 --------
drivers/staging/android/ion/ion_system_heap.c | 53 +-
drivers/staging/android/ion/ion_test.c | 305 -----
drivers/staging/android/ion/tegra/Makefile | 1 -
drivers/staging/android/ion/tegra/tegra_ion.c | 80 --
drivers/staging/android/uapi/ion.h | 86 +-
drivers/staging/android/uapi/ion_test.h | 69 --
include/linux/cma.h | 6 +-
mm/cma.c | 25 +-
mm/cma.h | 1 +
mm/cma_debug.c | 2 +-
30 files changed, 610 insertions(+), 3195 deletions(-)
delete mode 100644 drivers/staging/android/ion/compat_ion.c
delete mode 100644 drivers/staging/android/ion/compat_ion.h
delete mode 100644 drivers/staging/android/ion/hisilicon/Kconfig
delete mode 100644 drivers/staging/android/ion/hisilicon/Makefile
delete mode 100644 drivers/staging/android/ion/hisilicon/hi6220_ion.c
delete mode 100644 drivers/staging/android/ion/ion_dummy_driver.c
delete mode 100644 drivers/staging/android/ion/ion_of.c
delete mode 100644 drivers/staging/android/ion/ion_of.h
delete mode 100644 drivers/staging/android/ion/ion_priv.h
delete mode 100644 drivers/staging/android/ion/ion_test.c
delete mode 100644 drivers/staging/android/ion/tegra/Makefile
delete mode 100644 drivers/staging/android/ion/tegra/tegra_ion.c
delete mode 100644 drivers/staging/android/uapi/ion_test.h
--
2.7.4
next reply other threads:[~2017-03-18 0:54 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-18 0:54 Laura Abbott [this message]
2017-03-18 0:54 ` [RFC PATCHv2 01/21] cma: Store a name in the cma structure Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 02/21] cma: Introduce cma_for_each_area Laura Abbott
2017-03-29 8:48 ` Benjamin Gaignard
2017-03-18 0:54 ` [RFC PATCHv2 03/21] staging: android: ion: Remove dmap_cnt Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 04/21] staging: android: ion: Remove alignment from allocation field Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 05/21] staging: android: ion: Duplicate sg_table Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 06/21] staging: android: ion: Call dma_map_sg for syncing and mapping Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 07/21] staging: android: ion: Remove page faulting support Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 08/21] staging: android: ion: Remove crufty cache support Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 09/21] staging: android: ion: Remove custom ioctl interface Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 10/21] staging: android: ion: Remove import interface Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 11/21] staging: android: ion: Remove duplicate ION_IOC_MAP Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 12/21] staging: android: ion: Remove old platform support Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 13/21] staging: android: ion: Use CMA APIs directly Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 14/21] staging: android: ion: Stop butchering the DMA address Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 15/21] staging: android: ion: Break the ABI in the name of forward progress Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 16/21] staging: android: ion: Get rid of ion_phys_addr_t Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 17/21] staging: android: ion: Collapse internal header files Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 18/21] staging: android: ion: Rework heap registration/enumeration Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 19/21] staging: android: ion: Drop ion_map_kernel interface Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 20/21] staging: android: ion: Remove ion_handle and ion_client Laura Abbott
2017-03-18 0:54 ` [RFC PATCHv2 21/21] staging: android: ion: Set query return value Laura Abbott
2017-03-29 9:03 ` [RFC PATCHv2 00/21] Ion clean in preparation for moving out of staging Benjamin Gaignard
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1489798493-16600-1-git-send-email-labbott@redhat.com \
--to=labbott@redhat.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).