Home
last modified time | relevance | path

Searched full:shmem (Results 1 – 25 of 171) sorted by relevance

1234567

/linux/drivers/gpu/drm/
H A Ddrm_gem_shmem_helper.c33 * This library provides helpers for GEM objects backed by shmem buffers
54 static int __drm_gem_shmem_init(struct drm_device *dev, struct drm_gem_shmem_object *shmem, in __drm_gem_shmem_init() argument
57 struct drm_gem_object *obj = &shmem->base; in __drm_gem_shmem_init()
65 shmem->map_wc = false; /* dma-buf mappings use always writecombine */ in __drm_gem_shmem_init()
78 INIT_LIST_HEAD(&shmem->madv_list); in __drm_gem_shmem_init()
101 * @shmem: shmem GEM object to initialize
104 * This function initializes an allocated shmem GEM object.
109 int drm_gem_shmem_init(struct drm_device *dev, struct drm_gem_shmem_object *shmem, size_t size) in drm_gem_shmem_init() argument
111 return __drm_gem_shmem_init(dev, shmem, size, false); in drm_gem_shmem_init()
118 struct drm_gem_shmem_object *shmem; in __drm_gem_shmem_create() local
[all …]
H A Ddrm_fbdev_shmem.c48 struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); in drm_fbdev_shmem_fb_mmap() local
50 if (shmem->map_wc) in drm_fbdev_shmem_fb_mmap()
87 struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); in drm_fbdev_shmem_get_page() local
94 page = shmem->pages[i]; // protected by active vmap in drm_fbdev_shmem_get_page()
140 struct drm_gem_shmem_object *shmem; in drm_fbdev_shmem_driver_fbdev_probe() local
155 shmem = to_drm_gem_shmem_obj(buffer->gem); in drm_fbdev_shmem_driver_fbdev_probe()
177 if (!shmem->map_wc) in drm_fbdev_shmem_driver_fbdev_probe()
/linux/drivers/gpu/drm/tests/
H A Ddrm_gem_shmem_test.c3 * KUnit test suite for GEM objects backed by shmem buffers
43 * Test creating a shmem GEM object backed by shmem buffer. The test
45 * shmem file node and object functions attributes set, and the size
51 struct drm_gem_shmem_object *shmem; in drm_gem_shmem_test_obj_create() local
53 shmem = drm_gem_shmem_create(drm_dev, TEST_SIZE); in drm_gem_shmem_test_obj_create()
54 KUNIT_ASSERT_NOT_ERR_OR_NULL(test, shmem); in drm_gem_shmem_test_obj_create()
55 KUNIT_EXPECT_EQ(test, shmem->base.size, TEST_SIZE); in drm_gem_shmem_test_obj_create()
56 KUNIT_EXPECT_NOT_NULL(test, shmem->base.filp); in drm_gem_shmem_test_obj_create()
57 KUNIT_EXPECT_NOT_NULL(test, shmem->base.funcs); in drm_gem_shmem_test_obj_create()
59 drm_gem_shmem_free(shmem); in drm_gem_shmem_test_obj_create()
[all …]
/linux/drivers/gpu/drm/panthor/
H A Dpanthor_gem.c86 * because the zeroing done by the shmem layer at page allocation in should_map_wc()
266 struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); in panthor_gem_prime_begin_cpu_access() local
270 if (shmem->sgt) in panthor_gem_prime_begin_cpu_access()
271 dma_sync_sgtable_for_cpu(dev->dev, shmem->sgt, dir); in panthor_gem_prime_begin_cpu_access()
273 if (shmem->vaddr) in panthor_gem_prime_begin_cpu_access()
274 invalidate_kernel_vmap_range(shmem->vaddr, shmem->base.size); in panthor_gem_prime_begin_cpu_access()
293 struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); in panthor_gem_prime_end_cpu_access() local
304 if (shmem->vaddr) in panthor_gem_prime_end_cpu_access()
305 flush_kernel_vmap_range(shmem->vaddr, shmem->base.size); in panthor_gem_prime_end_cpu_access()
307 if (shmem->sgt) in panthor_gem_prime_end_cpu_access()
[all …]
/linux/drivers/firmware/arm_scmi/
H A Dcommon.h372 /* shmem related declarations */
379 * @tx_prepare: Prepare the @xfer message for transmission on the chosen @shmem
380 * @read_header: Read header of the message currently hold in @shmem
381 * @fetch_response: Copy the message response from @shmem into @xfer
382 * @fetch_notification: Copy the message notification from @shmem into @xfer
383 * @clear_channel: Clear the @shmem channel busy flag
384 * @poll_done: Check if poll has completed for @xfer on @shmem
385 * @channel_free: Check if @shmem channel is marked as free
386 * @channel_intr_enabled: Check is @shmem channel has requested a completion irq
390 void (*tx_prepare)(struct scmi_shared_mem __iomem *shmem,
[all …]
/linux/drivers/net/arcnet/
H A Dcom90xx.c44 * shmem are left in the list at Stage 5, they must correspond to each
58 static int com90xx_found(int ioaddr, int airq, u_long shmem, void __iomem *);
86 static int io; /* use the insmod io= irq= shmem= options */
88 static int shmem; variable
93 module_param(shmem, int, 0);
107 if (!io && !irq && !shmem && !*device && com90xx_skip_probe) in com90xx_probe()
131 if (shmem) in com90xx_probe()
132 shmems[numshmems++] = shmem; in com90xx_probe()
203 /* Stage 3: abandon any shmem addresses that don't have the signature in com90xx_probe()
243 * sure no "mirror" shmem areas show up - if they occur in com90xx_probe()
[all …]
H A Darc-rimi.c65 * need to be passed a specific shmem address, IRQ, and node ID.
72 pr_info("Given: node %02Xh, shmem %lXh, irq %d\n", in arcrimi_probe()
78 pr_err("No autoprobe for RIM I; you must specify the shmem and irq!\n"); in arcrimi_probe()
126 unsigned long first_mirror, last_mirror, shmem; in arcrimi_found() local
146 shmem = dev->mem_start; in arcrimi_found()
159 check_mirror(shmem - MIRROR_SIZE, MIRROR_SIZE) == 0 && in arcrimi_found()
160 check_mirror(shmem - 2 * MIRROR_SIZE, MIRROR_SIZE) == 1) in arcrimi_found()
163 first_mirror = shmem - mirror_size; in arcrimi_found()
168 last_mirror = shmem + mirror_size; in arcrimi_found()
194 release_mem_region(shmem, MIRROR_SIZE); in arcrimi_found()
[all …]
/linux/drivers/gpu/drm/panfrost/
H A Dpanfrost_gem.c307 struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); in panfrost_gem_prime_begin_cpu_access() local
311 if (shmem->sgt) in panfrost_gem_prime_begin_cpu_access()
312 dma_sync_sgtable_for_cpu(dev->dev, shmem->sgt, dir); in panfrost_gem_prime_begin_cpu_access()
314 if (shmem->vaddr) in panfrost_gem_prime_begin_cpu_access()
315 invalidate_kernel_vmap_range(shmem->vaddr, shmem->base.size); in panfrost_gem_prime_begin_cpu_access()
334 struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); in panfrost_gem_prime_end_cpu_access() local
345 if (shmem->vaddr) in panfrost_gem_prime_end_cpu_access()
346 flush_kernel_vmap_range(shmem->vaddr, shmem->base.size); in panfrost_gem_prime_end_cpu_access()
348 if (shmem->sgt) in panfrost_gem_prime_end_cpu_access()
349 dma_sync_sgtable_for_device(dev->dev, shmem->sgt, dir); in panfrost_gem_prime_end_cpu_access()
[all …]
/linux/drivers/net/ethernet/microsoft/mana/
H A Dshm_channel.c82 /* shmem reads as 0xFFFFFFFF in the reset case */ in mana_smc_poll_register()
146 u64 *shmem; in mana_smc_setup_hwc() local
186 shmem = (u64 *)ptr; in mana_smc_setup_hwc()
188 *shmem = frame_addr & PAGE_FRAME_L48_MASK; in mana_smc_setup_hwc()
194 shmem = (u64 *)ptr; in mana_smc_setup_hwc()
196 *shmem = frame_addr & PAGE_FRAME_L48_MASK; in mana_smc_setup_hwc()
202 shmem = (u64 *)ptr; in mana_smc_setup_hwc()
204 *shmem = frame_addr & PAGE_FRAME_L48_MASK; in mana_smc_setup_hwc()
210 shmem = (u64 *)ptr; in mana_smc_setup_hwc()
212 *shmem = frame_addr & PAGE_FRAME_L48_MASK; in mana_smc_setup_hwc()
[all …]
/linux/drivers/gpu/drm/ttm/
H A Dttm_backup.c13 * Need to map shmem indices to handle since a handle value
160 * The idea behind backing up to shmem is that shmem objects may in ttm_backup_bytes_avail()
163 * number also depends on shmem actually swapping out backed-up in ttm_backup_bytes_avail()
164 * shmem objects without too much buffering. in ttm_backup_bytes_avail()
171 * ttm_backup_shmem_create() - Create a shmem-based struct backup.
174 * Create a backup utilizing shmem objects.
181 return shmem_file_setup("ttm shmem backup", size, in ttm_backup_shmem_create()
/linux/Documentation/devicetree/bindings/mailbox/
H A Dmailbox.txt26 - shmem : List of phandle pointing to the shared memory(SHM) area between the
39 Example with shared memory(shmem):
49 cl_shmem: shmem@0 {
50 compatible = "client-shmem";
58 shmem = <&cl_shmem>;
/linux/Documentation/devicetree/bindings/reserved-memory/
H A Dnvidia,tegra264-bpmp-shmem.yaml4 $id: http://devicetree.org/schemas/reserved-memory/nvidia,tegra264-bpmp-shmem.yaml#
17 The sub-node is named shmem@<address>.
24 const: nvidia,tegra264-bpmp-shmem
42 shmem@f1be0000 {
43 compatible = "nvidia,tegra264-bpmp-shmem";
/linux/Documentation/admin-guide/cgroup-v1/
H A Dmemcg_test.rst108 6. Shmem(tmpfs) Page Cache
111 The best way to understand shmem's page state transition is to read
112 mm/shmem.c.
114 But brief explanation of the behavior of memcg around shmem will be
117 Shmem's page (just leaf page, not direct/indirect block) can be on
119 - radix-tree of shmem's inode.
126 - A new page is added to shmem's radix-tree.
155 9.2 Shmem
158 Historically, memcg's shmem handling was poor and we saw some amount
159 of troubles here. This is because shmem is page-cache but can be
[all …]
/linux/arch/arm64/boot/dts/arm/
H A Djuno-scmi.dtsi49 shmem = <&cpu_scp_lpri0 &cpu_scp_lpri1>;
63 shmem = <&cpu_scp_hpri0 &cpu_scp_hpri1>;
205 compatible = "arm,scmi-shmem";
210 compatible = "arm,scmi-shmem";
215 compatible = "arm,scmi-shmem";
220 compatible = "arm,scmi-shmem";
/linux/Documentation/admin-guide/mm/
H A Dtranshuge.rst15 Currently THP only works for anonymous memory mappings and tmpfs/shmem.
373 allocation policy for the internal shmem mount by using the kernel parameter
375 seven valid policies for shmem (``always``, ``within_size``, ``advise``,
385 policies for shmem (``CONFIG_TRANSPARENT_HUGEPAGE_SHMEM_HUGE_*``) and tmpfs
390 size, ``thp_shmem`` controls each supported shmem THP size. ``thp_shmem``
395 as required. If ``thp_shmem=`` is specified at least once, any shmem THP
406 Hugepages in tmpfs/shmem
415 shmem mount (see below), ordinary tmpfs mounts will make use of all available
464 shmem / internal tmpfs
558 is incremented every time a shmem huge page is successfully
[all …]
/linux/drivers/platform/x86/amd/hfi/
H A Dhfi.c75 struct amd_shmem_info *shmem; member
154 memcpy_fromio(amd_hfi_data->shmem, pcc_comm_addr, pcct_ext->length); in amd_hfi_fill_metadata()
157 if (amd_hfi_data->shmem->header.signature != PCC_SIGNATURE) { in amd_hfi_fill_metadata()
161 if (amd_hfi_data->shmem->version_number != AMD_HETERO_RANKING_TABLE_VER) { in amd_hfi_fill_metadata()
163 amd_hfi_data->shmem->version_number); in amd_hfi_fill_metadata()
167 for (unsigned int i = 0; i < amd_hfi_data->shmem->n_bitmaps; i++) { in amd_hfi_fill_metadata()
168 u32 bitmap = amd_hfi_data->shmem->table_data[i]; in amd_hfi_fill_metadata()
191 u32 *table = amd_hfi_data->shmem->table_data + in amd_hfi_fill_metadata()
192 amd_hfi_data->shmem->n_bitmaps + in amd_hfi_fill_metadata()
383 amd_hfi_data->shmem = devm_kzalloc(amd_hfi_data->dev, pcct_ext->length, GFP_KERNEL); in amd_hfi_metadata_parser()
[all …]
/linux/Documentation/devicetree/bindings/firmware/
H A Darm,scpi.yaml48 shmem:
170 - shmem
178 shmem = <&cpu_scp_hpri>; /* HP-NonSecure */
225 compatible = "arm,scp-shmem";
230 compatible = "arm,scp-shmem";
241 shmem = <&cpu_scp_lpri>, <&cpu_scp_hpri>;
H A Dnvidia,tegra186-bpmp.yaml63 See "../reserved-memory/nvidia,tegra264-bpmp-shmem.yaml" for bindings for
82 shmem:
131 - shmem
183 shmem = <&cpu_bpmp_tx>, <&cpu_bpmp_rx>;
/linux/drivers/firmware/samsung/
H A Dexynos-acpm.c161 * @shmem: pointer to the SRAM configuration data.
169 struct acpm_shmem __iomem *shmem; member
549 struct acpm_shmem __iomem *shmem = acpm->shmem; in acpm_channels_init() local
554 acpm->num_chans = readl(&shmem->num_chans); in acpm_channels_init()
560 chans_shmem = acpm->sram_base + readl(&shmem->chans); in acpm_channels_init()
619 struct device_node *shmem; in acpm_probe() local
629 shmem = of_parse_phandle(dev->of_node, "shmem", 0); in acpm_probe()
630 ret = of_address_to_resource(shmem, 0, &res); in acpm_probe()
631 of_node_put(shmem); in acpm_probe()
647 acpm->shmem = acpm->sram_base + match_data->initdata_base; in acpm_probe()
/linux/mm/
H A Dmincore.c61 static unsigned char mincore_swap(swp_entry_t entry, bool shmem) in mincore_swap() argument
73 * Shmem mapping may contain swapin error entries, which are in mincore_swap()
78 return !shmem; in mincore_swap()
81 * Shmem mapping lookup is lockless, so we need to grab the swap in mincore_swap()
85 if (shmem) { in mincore_swap()
91 if (shmem) in mincore_swap()
/linux/drivers/gpu/drm/virtio/
H A Dvirtgpu_object.c149 struct virtio_gpu_object_shmem *shmem; in virtio_gpu_create_object() local
152 shmem = kzalloc_obj(*shmem); in virtio_gpu_create_object()
153 if (!shmem) in virtio_gpu_create_object()
156 dshmem = &shmem->base.base; in virtio_gpu_create_object()
/linux/drivers/gpu/drm/lima/
H A Dlima_gem.c113 struct drm_gem_shmem_object *shmem; in lima_gem_create_handle() local
118 shmem = drm_gem_shmem_create(dev, size); in lima_gem_create_handle()
119 if (IS_ERR(shmem)) in lima_gem_create_handle()
120 return PTR_ERR(shmem); in lima_gem_create_handle()
122 obj = &shmem->base; in lima_gem_create_handle()
136 struct sg_table *sgt = drm_gem_shmem_get_pages_sgt(shmem); in lima_gem_create_handle()
/linux/include/uapi/linux/
H A Duserfaultfd.h196 * UFFD_FEATURE_MISSING_HUGETLBFS, but it applies to shmem
197 * (i.e. tmpfs and other shmem based APIs).
211 * UFFD_FEATURE_MINOR_HUGETLBFS, but for shmem-backed pages instead.
218 * write-protection mode is supported on both shmem and hugetlbfs.
222 * (i.e. empty ptes). This will be the default behavior for shmem
/linux/arch/arm64/boot/dts/blaize/
H A Dblaize-blzp1600.dtsi50 shmem = <&scmi0_shm>;
82 scmi0_shm: scmi-shmem@800 {
83 compatible = "arm,scmi-shmem";
/linux/drivers/firmware/tegra/
H A Dbpmp-tegra186.c236 priv->tx.pool = of_gen_pool_get(bpmp->dev->of_node, "shmem", 0); in tegra186_bpmp_sram_init()
238 dev_err(bpmp->dev, "TX shmem pool not found\n"); in tegra186_bpmp_sram_init()
249 priv->rx.pool = of_gen_pool_get(bpmp->dev->of_node, "shmem", 1); in tegra186_bpmp_sram_init()
251 dev_err(bpmp->dev, "RX shmem pool not found\n"); in tegra186_bpmp_sram_init()

1234567