Re: [PATCH 2/2] pci: Add parameter to disable attaching untrusted devices

2020-06-26 Thread Greg Kroah-Hartman
On Fri, Jun 26, 2020 at 11:53:34AM -0700, Rajat Jain wrote: > a) I think what was decided was introducing a device core "location" > property that can be exposed to userspace to help it to decide whether > or not to attach a driver to a device. Yes, that is still the plan. Great, but this patch

[PATCH 2/2] vfio/type1: Update group->domain after aux attach and detach

2020-06-26 Thread Lu Baolu
Update group->domain whenever an aux-domain is attached to or detached from a mediated device. Without this change, iommu_get_domain_for_dev() will be broken for mdev devices. Fixes: 7bd50f0cd2fd5 ("vfio/type1: Add domain at(de)taching group helpers") Signed-off-by: Lu Baolu ---

[PATCH 1/2] iommu: Add iommu_group_get/set_domain()

2020-06-26 Thread Lu Baolu
The hardware assistant vfio mediated device is a use case of iommu aux-domain. The interactions between vfio/mdev and iommu during mdev creation and passthr are: - Create a group for mdev with iommu_group_alloc(); - Add the device to the group with group = iommu_group_alloc(); if

Re: [PATCH v2 3/5] irqchip: Allow QCOM_PDC to be loadable as a permanent module

2020-06-26 Thread John Stultz
On Fri, Jun 26, 2020 at 12:42 AM Stephen Boyd wrote: > > Quoting John Stultz (2020-06-24 17:10:37) > > diff --git a/drivers/irqchip/qcom-pdc.c b/drivers/irqchip/qcom-pdc.c > > index 6ae9e1f0819d..3fee8b655da1 100644 > > --- a/drivers/irqchip/qcom-pdc.c > > +++ b/drivers/irqchip/qcom-pdc.c > > @@

Re: [PATCH net] xsk: remove cheap_dma optimization

2020-06-26 Thread Daniel Borkmann
On 6/26/20 3:43 PM, Björn Töpel wrote: From: Björn Töpel When the AF_XDP buffer allocation API was introduced it had an optimization, "cheap_dma". The idea was that when the umem was DMA mapped, the pool also checked whether the mapping required a synchronization (CPU to device, and vice

Re: [PATCH v3 1/5] docs: IOMMU user API

2020-06-26 Thread Alex Williamson
On Tue, 23 Jun 2020 10:03:53 -0700 Jacob Pan wrote: > IOMMU UAPI is newly introduced to support communications between guest > virtual IOMMU and host IOMMU. There has been lots of discussions on how > it should work with VFIO UAPI and userspace in general. > > This document is indended to

RE: [PATCH V4 0/3] iommu: Add support to change default domain of an iommu group

2020-06-26 Thread Prakhya, Sai Praneeth
Hi Joerg, > -Original Message- > From: Prakhya, Sai Praneeth > Sent: Thursday, June 4, 2020 6:32 PM > To: iommu@lists.linux-foundation.org > Cc: Prakhya, Sai Praneeth ; Christoph Hellwig > ; Joerg Roedel ; Raj, Ashok > ; Will Deacon ; Lu Baolu > ; Mehta, Sohil ; Robin > Murphy ; Jacob

Re: the XSK buffer pool needs be to reverted

2020-06-26 Thread Jonathan Lemon
On Fri, Jun 26, 2020 at 09:47:25AM +0200, Christoph Hellwig wrote: > > Note that this is somewhat urgent, as various of the APIs that the code > is abusing are slated to go away for Linux 5.9, so this addition comes > at a really bad time. Could you elaborate on what is upcoming here? Also, on

Re: [PATCH net] xsk: remove cheap_dma optimization

2020-06-26 Thread Jonathan Lemon
On Fri, Jun 26, 2020 at 03:43:58PM +0200, Björn Töpel wrote: > From: Björn Töpel > > When the AF_XDP buffer allocation API was introduced it had an > optimization, "cheap_dma". The idea was that when the umem was DMA > mapped, the pool also checked whether the mapping required a >

[PATCH v2 1/6] iommu/arm-smmu: Add auxiliary domain support for arm-smmuv2

2020-06-26 Thread Jordan Crouse
Support auxiliary domains for arm-smmu-v2 to initialize and support multiple pagetables for a single SMMU context bank. Since the smmu-v2 hardware doesn't have any built in support for switching the pagetable base it is left as an exercise to the caller to actually use the pagetable. Aux domains

[PATCH v2 0/6] iommu-arm-smmu: Add auxiliary domains and per-instance pagetables

2020-06-26 Thread Jordan Crouse
This is a new refresh of support for auxiliary domains for arm-smmu-v2 and per-instance pagetables for drm/msm. The big change here from past efforts is that outside of creating a single aux-domain to enable TTBR0 all of the per-instance pagetables are created and managed exclusively in drm/msm

[PATCH v2 5/6] drm/msm: Add support for address space instances

2020-06-26 Thread Jordan Crouse
Add support for allocating an address space instance. Targets that support per-instance pagetables should implement their own function to allocate a new instance. The default will return the existing generic address space. Signed-off-by: Jordan Crouse --- drivers/gpu/drm/msm/msm_drv.c | 15

[PATCH v2 4/6] drm/msm: Add support to create a local pagetable

2020-06-26 Thread Jordan Crouse
Add support to create a io-pgtable for use by targets that support per-instance pagetables. In order to support per-instance pagetables the GPU SMMU device needs to have the qcom,adreno-smmu compatible string and split pagetables and auxiliary domains need to be supported and enabled.

[PATCH v2 6/6] drm/msm/a6xx: Add support for per-instance pagetables

2020-06-26 Thread Jordan Crouse
Add support for using per-instance pagetables if all the dependencies are available. Signed-off-by: Jordan Crouse --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 43 +++ drivers/gpu/drm/msm/msm_ringbuffer.h | 1 + 2 files changed, 44 insertions(+) diff --git

[PATCH v2 3/6] iommu/arm-smmu: Add a domain attribute to pass the pagetable config

2020-06-26 Thread Jordan Crouse
The Adreno GPU has the capacity to manage its own pagetables and switch them dynamically from the hardware. Add a domain attribute for arm-smmu-v2 to get the default pagetable configuration so that the GPU driver can match the format for its own pagetables. Signed-off-by: Jordan Crouse ---

[PATCH v2 2/6] iommu/io-pgtable: Allow a pgtable implementation to skip TLB operations

2020-06-26 Thread Jordan Crouse
Allow a io-pgtable implementation to skip TLB operations by checking for NULL pointers in the helper functions. It will be up to to the owner of the io-pgtable instance to make sure that they independently handle the TLB correctly. Signed-off-by: Jordan Crouse --- include/linux/io-pgtable.h |

[PATCH v9 6/7] drm/msm: Set the global virtual address range from the IOMMU domain

2020-06-26 Thread Jordan Crouse
Use the aperture settings from the IOMMU domain to set up the virtual address range for the GPU. This allows us to transparently deal with IOMMU side features (like split pagetables). Signed-off-by: Jordan Crouse --- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 13 +++--

[PATCH v9 4/7] iommu/arm-smmu: Add a pointer to the attached device to smmu_domain

2020-06-26 Thread Jordan Crouse
Add a link to the pointer to the struct device that is attached to a domain. This makes it easy to get the pointer if it is needed in the implementation specific code. Signed-off-by: Jordan Crouse --- drivers/iommu/arm-smmu.c | 6 -- drivers/iommu/arm-smmu.h | 1 + 2 files changed, 5

[PATCH v9 3/7] dt-bindings: arm-smmu: Add compatible string for Adreno GPU SMMU

2020-06-26 Thread Jordan Crouse
Every Qcom Adreno GPU has an embedded SMMU for its own use. These devices depend on unique features such as split pagetables, different stall/halt requirements and other settings. Identify them with a compatible string so that they can be identified in the arm-smmu implementation specific code.

[PATCH v9 5/7] iommu/arm-smmu: Add implementation for the adreno GPU SMMU

2020-06-26 Thread Jordan Crouse
Add a special implementation for the SMMU attached to most Adreno GPU target triggered from the qcom,adreno-gpu-smmu compatible string. When selected the driver will attempt to enable split pagetables. Signed-off-by: Jordan Crouse --- drivers/iommu/arm-smmu-impl.c | 3 +++

[PATCH v9 2/7] iommu/arm-smmu: Add support for split pagetables

2020-06-26 Thread Jordan Crouse
Enable TTBR1 for a context bank if IO_PGTABLE_QUIRK_ARM_TTBR1 is selected by the io-pgtable configuration. Signed-off-by: Jordan Crouse --- drivers/iommu/arm-smmu.c | 21 - drivers/iommu/arm-smmu.h | 25 +++-- 2 files changed, 35 insertions(+), 11

[PATCH v9 0/7] iommu/arm-smmu: Enable split pagetable support

2020-06-26 Thread Jordan Crouse
Another iteration of the split-pagetable support for arm-smmu and the Adreno GPU SMMU. After email discussions [1] we opted to make a arm-smmu implementation for specifically for the Adreno GPU and use that to enable split pagetable support and later other implementation specific bits that we

[PATCH v9 7/7] arm: dts: qcom: sm845: Set the compatible string for the GPU SMMU

2020-06-26 Thread Jordan Crouse
Set the qcom,adreno-smmu compatible string for the GPU SMMU to enable split pagetables. Signed-off-by: Jordan Crouse --- arch/arm64/boot/dts/qcom/sdm845.dtsi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi

[PATCH v9 1/7] iommu/arm-smmu: Pass io-pgtable config to implementation specific function

2020-06-26 Thread Jordan Crouse
Construct the io-pgtable config before calling the implementation specific init_context function and pass it so the implementation specific function can get a chance to change it before the io-pgtable is created. Signed-off-by: Jordan Crouse --- drivers/iommu/arm-smmu-impl.c | 3 ++-

Re: [git pull] IOMMU Fixes for Linux v5.8-rc2

2020-06-26 Thread pr-tracker-bot
The pull request you sent on Fri, 26 Jun 2020 16:47:01 +0200: > git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git > tags/iommu-fixes-v5.8-rc2 has been merged into torvalds/linux.git: https://git.kernel.org/torvalds/c/bd37cdf8ba1b56a968173560314398d5d3b2d37a Thank you! --

Re: [PATCH v2] iommu/arm-smmu: Mark qcom_smmu_client_of_match as possibly unused

2020-06-26 Thread Jordan Crouse
On Mon, Jun 08, 2020 at 04:13:08PM +0100, Will Deacon wrote: > On Thu, Jun 04, 2020 at 02:39:04PM -0600, Jordan Crouse wrote: > > When CONFIG_OF=n of_match_device() gets pre-processed out of existence > > leaving qcom-smmu_client_of_match unused. Mark it as possibly unused to > > keep the compiler

Re: [PATCH 1/2] pci: Add pci device even if the driver failed to attach

2020-06-26 Thread Rajat Jain via iommu
On Fri, Jun 26, 2020 at 8:39 AM Bjorn Helgaas wrote: > > Nit: when you update these patches, can you run "git log --oneline > drivers/pci/bus.c" and make your subject lines match the convention? Sorry, will do. > E.g., > > PCI: Add device even if driver attach failed > > On Thu, Jun 25, 2020

Re: [PATCH 2/2] pci: Add parameter to disable attaching untrusted devices

2020-06-26 Thread Rajat Jain via iommu
Hello, Thanks for taking a look. On Fri, Jun 26, 2020 at 7:18 AM Greg Kroah-Hartman wrote: > > On Thu, Jun 25, 2020 at 05:27:10PM -0700, Rajat Jain wrote: > > Introduce a PCI parameter that disables the automatic attachment of > > untrusted devices to their drivers. > > > > Signed-off-by: Rajat

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Fenghua Yu
Hi, Dave, On Fri, Jun 26, 2020 at 11:23:12AM -0700, Dave Hansen wrote: > On 6/26/20 11:10 AM, Luck, Tony wrote: > > On Fri, Jun 26, 2020 at 11:44:50AM +0200, Peter Zijlstra wrote: > >> On Thu, Jun 25, 2020 at 01:17:22PM -0700, Fenghua Yu wrote: > >> > >>> +static bool fixup_pasid_exception(void)

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Dave Hansen
On 6/26/20 11:10 AM, Luck, Tony wrote: > On Fri, Jun 26, 2020 at 11:44:50AM +0200, Peter Zijlstra wrote: >> On Thu, Jun 25, 2020 at 01:17:22PM -0700, Fenghua Yu wrote: >> >>> +static bool fixup_pasid_exception(void) >>> +{ >>> + if (!IS_ENABLED(CONFIG_INTEL_IOMMU_SVM)) >>> + return

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Fenghua Yu
Hi, Peter, On Fri, Jun 26, 2020 at 11:44:50AM +0200, Peter Zijlstra wrote: > On Thu, Jun 25, 2020 at 01:17:22PM -0700, Fenghua Yu wrote: > > > +static bool fixup_pasid_exception(void) > > +{ > > + if (!IS_ENABLED(CONFIG_INTEL_IOMMU_SVM)) > > + return false; > > + if

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Borislav Petkov
On Fri, Jun 26, 2020 at 11:10:00AM -0700, Luck, Tony wrote: > Do we have a standard way of coding for a feature that depends on multiple > other features? For this case the system needs to both suport the ENQCMD > instruction, and also have kernel code that programs the IOMMU. Yes, you need

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Luck, Tony
On Fri, Jun 26, 2020 at 11:44:50AM +0200, Peter Zijlstra wrote: > On Thu, Jun 25, 2020 at 01:17:22PM -0700, Fenghua Yu wrote: > > > +static bool fixup_pasid_exception(void) > > +{ > > + if (!IS_ENABLED(CONFIG_INTEL_IOMMU_SVM)) > > + return false; > > + if

Re: [PATCH v2 00/15] Documentation fixes

2020-06-26 Thread Jonathan Corbet
On Tue, 23 Jun 2020 09:08:56 +0200 Mauro Carvalho Chehab wrote: > As requested, this is a rebase of a previous series posted on Jan, 15. > > Since then, several patches got merged via other trees or became > obsolete. There were also 2 patches before that fits better at the > ReST conversion

Re: [PATCH v3 02/14] iommu: Report domain nesting info

2020-06-26 Thread Robin Murphy
On 2020-06-26 08:47, Jean-Philippe Brucker wrote: On Wed, Jun 24, 2020 at 01:55:15AM -0700, Liu Yi L wrote: IOMMUs that support nesting translation needs report the capability info to userspace, e.g. the format of first level/stage paging structures. This patch reports nesting info by

Re: [PATCH 1/2] pci: Add pci device even if the driver failed to attach

2020-06-26 Thread Bjorn Helgaas
Nit: when you update these patches, can you run "git log --oneline drivers/pci/bus.c" and make your subject lines match the convention? E.g., PCI: Add device even if driver attach failed On Thu, Jun 25, 2020 at 05:27:09PM -0700, Rajat Jain wrote: > device_attach() returning failure indicates a

Re: [PATCH] xen: introduce xen_vring_use_dma

2020-06-26 Thread Michael S. Tsirkin
On Thu, Jun 25, 2020 at 10:31:27AM -0700, Stefano Stabellini wrote: > On Wed, 24 Jun 2020, Michael S. Tsirkin wrote: > > On Wed, Jun 24, 2020 at 02:53:54PM -0700, Stefano Stabellini wrote: > > > On Wed, 24 Jun 2020, Michael S. Tsirkin wrote: > > > > On Wed, Jun 24, 2020 at 10:59:47AM -0700,

[git pull] IOMMU Fixes for Linux v5.8-rc2

2020-06-26 Thread Joerg Roedel
Hi Linus, The following changes since commit 48778464bb7d346b47157d21ffde2af6b2d39110: Linux 5.8-rc2 (2020-06-21 15:45:29 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git tags/iommu-fixes-v5.8-rc2 for you to fetch changes up to

Re: [PATCH 2/2] pci: Add parameter to disable attaching untrusted devices

2020-06-26 Thread Greg Kroah-Hartman
On Thu, Jun 25, 2020 at 05:27:10PM -0700, Rajat Jain wrote: > Introduce a PCI parameter that disables the automatic attachment of > untrusted devices to their drivers. > > Signed-off-by: Rajat Jain > --- > Context: > > I set out to implement the approach outlined in >

Re: [PATCH 1/2] pci: Add pci device even if the driver failed to attach

2020-06-26 Thread Greg Kroah-Hartman
On Thu, Jun 25, 2020 at 05:27:09PM -0700, Rajat Jain wrote: > device_attach() returning failure indicates a driver error > while trying to probe the device. In such a scenario, the PCI > device should still be added in the system and be visible to > the user. > > This patch partially reverts: >

[PATCH net] xsk: remove cheap_dma optimization

2020-06-26 Thread Björn Töpel
From: Björn Töpel When the AF_XDP buffer allocation API was introduced it had an optimization, "cheap_dma". The idea was that when the umem was DMA mapped, the pool also checked whether the mapping required a synchronization (CPU to device, and vice versa). If not, it would be marked as

Re: the XSK buffer pool needs be to reverted

2020-06-26 Thread Björn Töpel
On 2020-06-26 14:41, Christoph Hellwig wrote: On Fri, Jun 26, 2020 at 02:22:41PM +0200, Björn Töpel wrote: [...] Understood. Wdyt about something in the lines of the diff below? It's build tested only, but removes all non-dma API usage ("poking internals"). Would that be a way forward, and

Re: the XSK buffer pool needs be to reverted

2020-06-26 Thread Christoph Hellwig
On Fri, Jun 26, 2020 at 02:22:41PM +0200, Björn Töpel wrote: > Thanks for clarifying that. Let's work on a solution that can reside in > the dma mapping core. > >> The commit seems to have a long dove tail of commits depending on it >> despite only being a month old, so maybe you can do the revert

Re: [PATCH v2 0/2] iommu/amd: Don't use atomic64_t for domain->pt_root

2020-06-26 Thread Qian Cai
> On Jun 26, 2020, at 4:05 AM, Joerg Roedel wrote: > > a previous discussion pointed out that using atomic64_t for that > purpose is a bit of overkill. This patch-set replaces it with unsigned > long and introduces some helpers first to make the change more easy. BTW, from the previous

Re: the XSK buffer pool needs be to reverted

2020-06-26 Thread Björn Töpel
On 2020-06-26 09:47, Christoph Hellwig wrote: Hi Björn, you addition of the xsk_buff_pool.c APIs in commit 2b43470add8c ("xsk: Introduce AF_XDP buffer allocation API") is unfortunately rather broken by making lots of assumptions and poking into dma-direct and swiotlb internals that are of no

RE: [PATCH v2 1/2] dma-direct: provide the ability to reserve per-numa CMA

2020-06-26 Thread Song Bao Hua (Barry Song)
> -Original Message- > From: linux-kernel-ow...@vger.kernel.org > [mailto:linux-kernel-ow...@vger.kernel.org] On Behalf Of Robin Murphy > Sent: Thursday, June 25, 2020 11:11 PM > To: Song Bao Hua (Barry Song) ; h...@lst.de; > m.szyprow...@samsung.com; w...@kernel.org; >

Re: [PATCH 09/13] x86: Remove dev->archdata.iommu pointer

2020-06-26 Thread Borislav Petkov
On Thu, Jun 25, 2020 at 03:08:32PM +0200, Joerg Roedel wrote: > From: Joerg Roedel > > There are no users left, all drivers have been converted to use the > per-device private pointer offered by IOMMU core. > > Signed-off-by: Joerg Roedel > --- > arch/x86/include/asm/device.h | 3 --- > 1

Re: [PATCH 4/4] iommu/arm-smmu-v3: Remove cmpxchg() in arm_smmu_cmdq_issue_cmdlist()

2020-06-26 Thread John Garry
On 23/06/2020 14:55, Rikard Falkeborn wrote: Den tis 23 juni 2020 12:21John Garry > skrev: On 23/06/2020 10:35, Rikard Falkeborn wrote: > >     I'd say that GENMASK_INPUT_CHECK() should be able to handle a l=0 and >     h=unsigned value, so I

Re: [PATCH v4 12/12] x86/traps: Fix up invalid PASID

2020-06-26 Thread Peter Zijlstra
On Thu, Jun 25, 2020 at 01:17:22PM -0700, Fenghua Yu wrote: > +static bool fixup_pasid_exception(void) > +{ > + if (!IS_ENABLED(CONFIG_INTEL_IOMMU_SVM)) > + return false; > + if (!static_cpu_has(X86_FEATURE_ENQCMD)) > + return false; elsewhere you had another

Re: [PATCH 2/2] pci: Add parameter to disable attaching untrusted devices

2020-06-26 Thread Oliver O'Halloran
On Fri, Jun 26, 2020 at 10:27 AM Rajat Jain wrote: > > Introduce a PCI parameter that disables the automatic attachment of > untrusted devices to their drivers. > > Signed-off-by: Rajat Jain > --- > Context: > > I set out to implement the approach outlined in >

Re: [PATCH 2/2] iommu/amd: Use 'unsigned long' for domain->pt_root

2020-06-26 Thread Joerg Roedel
Hi Qian, On Thu, Jun 25, 2020 at 11:37:20AM -0400, Qian Cai wrote: > On Thu, Jun 25, 2020 at 04:52:27PM +0200, Joerg Roedel wrote: > > - u64 pt_root = atomic64_read(>pt_root); > > + unsigned long pt_root = domain->pt_root; > > The pt_root might be reload later in case of register pressure

[PATCH v2 2/2] iommu/amd: Use 'unsigned long' for domain->pt_root

2020-06-26 Thread Joerg Roedel
From: Joerg Roedel Using atomic64_t can be quite expensive, so use unsigned long instead. This is safe because the write becomes visible atomically. Signed-off-by: Joerg Roedel --- drivers/iommu/amd/amd_iommu_types.h | 2 +- drivers/iommu/amd/iommu.c | 15 +-- 2 files

[PATCH v2 1/2] iommu/amd: Add helper functions to update domain->pt_root

2020-06-26 Thread Joerg Roedel
From: Joerg Roedel Do not call atomic64_set() directly to update the domain page-table root and use two new helper functions. This makes it easier to implement additional work necessary when the page-table is updated. Signed-off-by: Joerg Roedel --- drivers/iommu/amd/iommu.c | 31

[PATCH v2 0/2] iommu/amd: Don't use atomic64_t for domain->pt_root

2020-06-26 Thread Joerg Roedel
From: Joerg Roedel Hi, a previous discussion pointed out that using atomic64_t for that purpose is a bit of overkill. This patch-set replaces it with unsigned long and introduces some helpers first to make the change more easy. Qian, can you please test these patches in your environment? You

Re: [PATCH v3 02/14] iommu: Report domain nesting info

2020-06-26 Thread Jean-Philippe Brucker
On Wed, Jun 24, 2020 at 01:55:15AM -0700, Liu Yi L wrote: > IOMMUs that support nesting translation needs report the capability info > to userspace, e.g. the format of first level/stage paging structures. > > This patch reports nesting info by DOMAIN_ATTR_NESTING. Caller can get > nesting info

Re: [PATCH v2 3/5] irqchip: Allow QCOM_PDC to be loadable as a permanent module

2020-06-26 Thread Stephen Boyd
Quoting John Stultz (2020-06-24 17:10:37) > diff --git a/drivers/irqchip/qcom-pdc.c b/drivers/irqchip/qcom-pdc.c > index 6ae9e1f0819d..3fee8b655da1 100644 > --- a/drivers/irqchip/qcom-pdc.c > +++ b/drivers/irqchip/qcom-pdc.c > @@ -430,4 +432,33 @@ static int qcom_pdc_init(struct device_node *node,

the XSK buffer pool needs be to reverted

2020-06-26 Thread Christoph Hellwig
Hi Björn, you addition of the xsk_buff_pool.c APIs in commit 2b43470add8c ("xsk: Introduce AF_XDP buffer allocation API") is unfortunately rather broken by making lots of assumptions and poking into dma-direct and swiotlb internals that are of no business to outside users and clearly marked as