All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 01/11] habanalabs: set non-0 value in dram default page size
@ 2022-03-16 11:41 Oded Gabbay
  2022-03-16 11:41 ` [PATCH 02/11] habanalabs: add DRAM default page size to HW info Oded Gabbay
                   ` (9 more replies)
  0 siblings, 10 replies; 15+ messages in thread
From: Oded Gabbay @ 2022-03-16 11:41 UTC (permalink / raw)
  To: linux-kernel; +Cc: Ohad Sharabi

From: Ohad Sharabi <osharabi@habana.ai>

Looking forward we will need to report to the user what is the default
page size used.

This will be done more conveniently by explicitly updating the property
rather than to rely on a "0 meaning default" value.

Signed-off-by: Ohad Sharabi <osharabi@habana.ai>
Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
---
 drivers/misc/habanalabs/common/habanalabs.h | 5 +++++
 drivers/misc/habanalabs/common/memory.c     | 2 +-
 drivers/misc/habanalabs/gaudi/gaudi.c       | 1 +
 drivers/misc/habanalabs/goya/goya.c         | 1 +
 4 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/misc/habanalabs/common/habanalabs.h b/drivers/misc/habanalabs/common/habanalabs.h
index 1edaf6ab67bd..af47accd4a56 100644
--- a/drivers/misc/habanalabs/common/habanalabs.h
+++ b/drivers/misc/habanalabs/common/habanalabs.h
@@ -528,6 +528,10 @@ struct hl_hints_range {
  * @fw_app_cpu_boot_dev_sts1: bitmap representation of application security
  *                            status reported by FW, bit description can be
  *                            found in CPU_BOOT_DEV_STS1
+ * @device_mem_alloc_default_page_size: may be different than dram_page_size only for ASICs for
+ *                                      which the property supports_user_set_page_size is true
+ *                                      (i.e. the DRAM supports multiple page sizes), otherwise
+ *                                      it will shall  be equal to dram_page_size.
  * @collective_first_sob: first sync object available for collective use
  * @collective_first_mon: first monitor available for collective use
  * @sync_stream_first_sob: first sync object available for sync stream use
@@ -626,6 +630,7 @@ struct asic_fixed_properties {
 	u32				fw_bootfit_cpu_boot_dev_sts1;
 	u32				fw_app_cpu_boot_dev_sts0;
 	u32				fw_app_cpu_boot_dev_sts1;
+	u32				device_mem_alloc_default_page_size;
 	u16				collective_first_sob;
 	u16				collective_first_mon;
 	u16				sync_stream_first_sob;
diff --git a/drivers/misc/habanalabs/common/memory.c b/drivers/misc/habanalabs/common/memory.c
index e008d82e4ba3..671633414504 100644
--- a/drivers/misc/habanalabs/common/memory.c
+++ b/drivers/misc/habanalabs/common/memory.c
@@ -41,7 +41,7 @@ static int set_alloc_page_size(struct hl_device *hdev, struct hl_mem_in *args, u
 			return -EINVAL;
 		}
 	} else {
-		psize = hdev->asic_prop.dram_page_size;
+		psize = prop->device_mem_alloc_default_page_size;
 	}
 
 	*page_size = psize;
diff --git a/drivers/misc/habanalabs/gaudi/gaudi.c b/drivers/misc/habanalabs/gaudi/gaudi.c
index 21c2b678ff72..feb1323a8f4a 100644
--- a/drivers/misc/habanalabs/gaudi/gaudi.c
+++ b/drivers/misc/habanalabs/gaudi/gaudi.c
@@ -595,6 +595,7 @@ static int gaudi_set_fixed_properties(struct hl_device *hdev)
 	prop->mmu_hop_table_size = HOP_TABLE_SIZE_512_PTE;
 	prop->mmu_hop0_tables_total_size = HOP0_512_PTE_TABLES_TOTAL_SIZE;
 	prop->dram_page_size = PAGE_SIZE_2MB;
+	prop->device_mem_alloc_default_page_size = prop->dram_page_size;
 	prop->dram_supports_virtual_memory = false;
 
 	prop->pmmu.hop0_shift = MMU_V1_1_HOP0_SHIFT;
diff --git a/drivers/misc/habanalabs/goya/goya.c b/drivers/misc/habanalabs/goya/goya.c
index ec9358bcbf0b..5bd665188ea6 100644
--- a/drivers/misc/habanalabs/goya/goya.c
+++ b/drivers/misc/habanalabs/goya/goya.c
@@ -413,6 +413,7 @@ int goya_set_fixed_properties(struct hl_device *hdev)
 	prop->mmu_hop_table_size = HOP_TABLE_SIZE_512_PTE;
 	prop->mmu_hop0_tables_total_size = HOP0_512_PTE_TABLES_TOTAL_SIZE;
 	prop->dram_page_size = PAGE_SIZE_2MB;
+	prop->device_mem_alloc_default_page_size = prop->dram_page_size;
 	prop->dram_supports_virtual_memory = true;
 
 	prop->dmmu.hop0_shift = MMU_V1_0_HOP0_SHIFT;
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread
* Re: [PATCH 03/11] habanalabs: change mmu_get_real_page_size to be ASIC-specific
@ 2022-03-17  7:00 kernel test robot
  2022-03-20 15:31 ` kernel test robot
  0 siblings, 1 reply; 15+ messages in thread
From: kernel test robot @ 2022-03-17  7:00 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 22969 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
In-Reply-To: <20220316114129.2520107-3-ogabbay@kernel.org>
References: <20220316114129.2520107-3-ogabbay@kernel.org>
TO: Oded Gabbay <ogabbay@kernel.org>

Hi Oded,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on char-misc/char-misc-testing]
[also build test WARNING on next-20220316]
[cannot apply to linux/master linus/master v5.17-rc8]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]

url:    https://github.com/0day-ci/linux/commits/Oded-Gabbay/habanalabs-set-non-0-value-in-dram-default-page-size/20220316-194323
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git d6cd2f85931f87dbd07c664c9c6e806db1dd7c75
:::::: branch date: 19 hours ago
:::::: commit date: 19 hours ago
config: riscv-randconfig-c006-20220313 (https://download.01.org/0day-ci/archive/20220317/202203171437.0m4BxdYd-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project a6ec1e3d798f8eab43fb3a91028c6ab04e115fcb)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install riscv cross compiling tool for clang build
        # apt-get install binutils-riscv64-linux-gnu
        # https://github.com/0day-ci/linux/commit/9535025e314bc12dbdeebee7c71634699759bcfa
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Oded-Gabbay/habanalabs-set-non-0-value-in-dram-default-page-size/20220316-194323
        git checkout 9535025e314bc12dbdeebee7c71634699759bcfa
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
   Suppressed 10 warnings (2 in non-user code, 8 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
   drivers/iio/dac/ad5761.c:63:8: warning: Excessive padding in 'struct ad5761_state' (67 padding bytes, where 3 is optimal). 
   Optimal fields order: 
   data, 
   vref, 
   spi, 
   vref_reg, 
   lock, 
   range, 
   use_intref, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct ad5761_state {
   ~~~~~~~^~~~~~~~~~~~~~
   drivers/iio/dac/ad5761.c:63:8: note: Excessive padding in 'struct ad5761_state' (67 padding bytes, where 3 is optimal). Optimal fields order: data, vref, spi, vref_reg, lock, range, use_intref, consider reordering the fields or adding explicit padding members
   struct ad5761_state {
   ~~~~~~~^~~~~~~~~~~~~~
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
   drivers/misc/genwqe/card_base.c:522:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
                   err = -ENODEV;
                   ^     ~~~~~~~
   drivers/misc/genwqe/card_base.c:522:3: note: Value stored to 'err' is never read
                   err = -ENODEV;
                   ^     ~~~~~~~
   drivers/misc/genwqe/card_base.c:921:3: warning: Value stored to 'rc' is never read [clang-analyzer-deadcode.DeadStores]
                   rc = wait_event_interruptible_timeout(cd->health_waitq,
                   ^
   drivers/misc/genwqe/card_base.c:921:3: note: Value stored to 'rc' is never read
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   13 warnings generated.
>> drivers/misc/habanalabs/common/mmu/mmu.c:220:2: warning: Value stored to 'prop' is never read [clang-analyzer-deadcode.DeadStores]
           prop = &hdev->asic_prop;
           ^      ~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/mmu/mmu.c:220:2: note: Value stored to 'prop' is never read
           prop = &hdev->asic_prop;
           ^      ~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/mmu/mmu.c:287:2: warning: Value stored to 'prop' is never read [clang-analyzer-deadcode.DeadStores]
           prop = &hdev->asic_prop;
           ^      ~~~~~~~~~~~~~~~~
   drivers/misc/habanalabs/common/mmu/mmu.c:287:2: note: Value stored to 'prop' is never read
           prop = &hdev->asic_prop;
           ^      ~~~~~~~~~~~~~~~~
   Suppressed 11 warnings (2 in non-user code, 9 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   drivers/misc/habanalabs/common/mmu/mmu_v1.c:381:2: warning: Value stored to 'hop2_pte_addr' is never read [clang-analyzer-deadcode.DeadStores]
           hop2_pte_addr = hop2_addr;
           ^               ~~~~~~~~~
   drivers/misc/habanalabs/common/mmu/mmu_v1.c:381:2: note: Value stored to 'hop2_pte_addr' is never read
           hop2_pte_addr = hop2_addr;
           ^               ~~~~~~~~~
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   10 warnings generated.
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   9 warnings generated.
   Suppressed 9 warnings (2 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
   drivers/iio/frequency/ad9523.c:266:8: warning: Excessive padding in 'struct ad9523_state' (110 padding bytes, where 46 is optimal). 
   Optimal fields order: 
   data, 
   spi, 
   reg, 
   pdata, 
   pwrdown_gpio, 
   reset_gpio, 
   sync_gpio, 
   vcxo_freq, 
   vco_freq, 
   vco_out_freq, 
   lock, 
   ad9523_channels, 
   vco_out_map, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct ad9523_state {
   ~~~~~~~^~~~~~~~~~~~~~
   drivers/iio/frequency/ad9523.c:266:8: note: Excessive padding in 'struct ad9523_state' (110 padding bytes, where 46 is optimal). Optimal fields order: data, spi, reg, pdata, pwrdown_gpio, reset_gpio, sync_gpio, vcxo_freq, vco_freq, vco_out_freq, lock, ad9523_channels, vco_out_map, consider reordering the fields or adding explicit padding members
   struct ad9523_state {
   ~~~~~~~^~~~~~~~~~~~~~
   Suppressed 10 warnings (3 in non-user code, 7 with check filters).
   Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
   11 warnings generated.
   drivers/iio/frequency/adf4350.c:33:8: warning: Excessive padding in 'struct adf4350_state' (100 padding bytes, where 36 is optimal). 
   Optimal fields order: 
   val, 
   r0_fract, 
   spi, 
   reg, 
   lock_detect_gpiod, 
   pdata, 
   clk, 
   clkin, 
   chspc, 
   fpfd, 
   min_out_freq, 
   freq_req, 
   regs, 
   regs_hw, 
   lock, 
   r0_int, 
   r1_mod, 
   r4_rf_div_sel, 

vim +/prop +220 drivers/misc/habanalabs/common/mmu/mmu.c

9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  184  
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  185  /*
5c05487f155093 drivers/misc/habanalabs/common/mmu.c     Ofir Bitton    2020-10-22  186   * hl_mmu_unmap_page - unmaps a virtual addr
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  187   *
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  188   * @ctx: pointer to the context structure
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  189   * @virt_addr: virt addr to map from
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  190   * @page_size: size of the page to unmap
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  191   * @flush_pte: whether to do a PCI flush
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  192   *
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  193   * This function does the following:
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  194   * - Check that the virt addr is mapped
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  195   * - Unmap the virt addr and frees pgts if possible
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  196   * - Returns 0 on success, -EINVAL if the given addr is not mapped
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  197   *
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  198   * Because this function changes the page tables in the device and because it
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  199   * changes the MMU hash, it must be protected by a lock.
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  200   * However, because it maps only a single page, the lock should be implemented
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  201   * in a higher level in order to protect the entire mapping of the memory area
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  202   *
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  203   * For optimization reasons PCI flush may be requested once after unmapping of
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  204   * large area.
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  205   */
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  206  int hl_mmu_unmap_page(struct hl_ctx *ctx, u64 virt_addr, u32 page_size, bool flush_pte)
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  207  {
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  208  	struct hl_device *hdev = ctx->hdev;
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  209  	struct asic_fixed_properties *prop;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  210  	struct hl_mmu_properties *mmu_prop;
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  211  	struct hl_mmu_funcs *mmu_funcs;
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  212  	int i, pgt_residency, rc = 0;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  213  	u32 real_page_size, npages;
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  214  	u64 real_virt_addr;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  215  	bool is_dram_addr;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  216  
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  217  	if (!hdev->mmu_enable)
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  218  		return 0;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  219  
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16 @220  	prop = &hdev->asic_prop;
9488307a555925 drivers/misc/habanalabs/common/mmu.c     Oded Gabbay    2021-01-11  221  	is_dram_addr = hl_is_dram_va(hdev, virt_addr);
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  222  	mmu_prop = hl_mmu_get_prop(hdev, page_size, is_dram_addr);
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  223  
ccf979ee330b19 drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-10-05  224  	pgt_residency = mmu_prop->host_resident ? MMU_HR_PGT : MMU_DR_PGT;
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  225  	mmu_funcs = hl_mmu_get_funcs(hdev, pgt_residency, is_dram_addr);
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  226  
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  227  	rc = hdev->asic_funcs->mmu_get_real_page_size(hdev, mmu_prop, page_size, &real_page_size,
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  228  							is_dram_addr);
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  229  	if (rc)
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  230  		return rc;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  231  
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  232  	npages = page_size / real_page_size;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  233  	real_virt_addr = virt_addr;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  234  
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  235  	for (i = 0 ; i < npages ; i++) {
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  236  		rc = mmu_funcs->unmap(ctx, real_virt_addr, is_dram_addr);
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  237  		if (rc)
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  238  			break;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  239  
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  240  		real_virt_addr += real_page_size;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  241  	}
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  242  
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  243  	if (flush_pte)
9535025e314bc1 drivers/misc/habanalabs/common/mmu/mmu.c Ohad Sharabi   2022-03-16  244  		mmu_funcs->flush(ctx);
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  245  
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  246  	return rc;
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  247  }
d83fe66928b2ff drivers/misc/habanalabs/common/mmu.c     Moti Haimovski 2020-08-12  248  

---
0-DAY CI Kernel Test Service
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

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

end of thread, other threads:[~2022-03-20 15:32 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-16 11:41 [PATCH 01/11] habanalabs: set non-0 value in dram default page size Oded Gabbay
2022-03-16 11:41 ` [PATCH 02/11] habanalabs: add DRAM default page size to HW info Oded Gabbay
2022-03-16 11:41 ` [PATCH 03/11] habanalabs: change mmu_get_real_page_size to be ASIC-specific Oded Gabbay
2022-03-16 22:33   ` kernel test robot
2022-03-16 11:41 ` [PATCH 04/11] habanalabs: convert all MMU masks/shifts to arrays Oded Gabbay
2022-03-16 11:41 ` [PATCH 05/11] habanalabs: add user API to get valid DRAM page sizes Oded Gabbay
2022-03-16 19:37   ` kernel test robot
2022-03-16 11:41 ` [PATCH 06/11] habanalabs: add new return code to device fd open Oded Gabbay
2022-03-16 11:41 ` [PATCH 07/11] habanalabs: expose compute ctx status through info ioctl Oded Gabbay
2022-03-16 11:41 ` [PATCH 08/11] habanalabs/gaudi: increase submission resources Oded Gabbay
2022-03-16 11:41 ` [PATCH 09/11] habanalabs/gaudi: avoid resetting max power in hard reset Oded Gabbay
2022-03-16 11:41 ` [PATCH 10/11] habanalabs: parse full firmware versions Oded Gabbay
2022-03-16 11:41 ` [PATCH 11/11] habanalabs: modify dma_mask to be ASIC specific property Oded Gabbay
  -- strict thread matches above, loose matches on Subject: below --
2022-03-17  7:00 [PATCH 03/11] habanalabs: change mmu_get_real_page_size to be ASIC-specific kernel test robot
2022-03-20 15:31 ` kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.