gpt4 book ai didi

memory-management - 如何使用 mmap 在用户空间和内核之间共享内存并且数据不受文件支持

转载 作者:行者123 更新时间:2023-12-01 06:29:30 25 4
gpt4 key购买 nike

如何在没有文件支持的用户空间和内核之间共享内存?如果 mmap 是使用 MAP_ANON 完成的,如何与内核空间共享它?

我有一个数据结构

struct data {
int x;
char* y;
};

该数据结构由用户进程和内核更新。如果我使用 mmap,我没有支持的文件。我该怎么做。我也不能使用 copy_from_user,因为内核和用户进程会定期更新结构。请告知

最佳答案

我可以向您推荐类似的东西,但我不确定这是否是您需要的:我已经在 PowerPC 上开发了这个。

  • 限制内核可以看到的内存(比如比之前少 2MB),即如果原始内存是 1GB,新内存是 1022MB,在 bootargs
  • 中的 mem=1022M 的帮助下
  • 现在通过内核中的 ioremap(start address=0x3FE00000, size=2MB) 在 1022MB 处创建这个结构。

    结构数据 *data_kernel = ioremap(...)
  • 通过 mmap 在用户空间中使用/更新相同的内容(起始地址 = 0x3FE0 0000,大小 2MB)

    结构数据 *data_user = mmap(...)
  • 关于memory-management - 如何使用 mmap 在用户空间和内核之间共享内存并且数据不受文件支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24112438/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com