cnnblike's repos on GitHub
Go · 123 人关注
discord-lite
Swift · 35 人关注
discord
Shell · 3 人关注
hexo-server-all-in-one
a hexo image to deploy on docker
1 人关注
sshmuxd
sshmux frontend
0 人关注
async_simple
Simple, light-weight and easy-to-use asynchronous components
0 人关注
aws-cdk-ses-domain-identity
Constructs for provisioning and referencing domain identities which can be used in SES RuleSets and Actions Construct.
C · 0 人关注
cantian
0 人关注
DockerOnAndroid
Run Docker natively on Android devices
C · 0 人关注
jailhouse
Linux-based partitioning hypervisor
0 人关注
KamenRiderEngine
0 人关注
MISC
misc stuff
Shell · 0 人关注
rk-build
Armbian Linux build framework generates custom Debian or Ubuntu image for x86, aarch64, riscv64 & armhf
Python · 0 人关注
trezor-firmware
:lock: Trezor Firmware Monorepo
BitBake · 0 人关注
yocto-pitrezor
raspberry pi zero platform to run the trezor port pitrezor as a bitcoin wallet
cnnblike

cnnblike

V2EX 第 43155 号会员,加入于 2013-08-04 23:50:55 +08:00
今日活跃度排名 1630
Hyper.sh 要关了?
云计算  •  cnnblike  •  2018-12-29 17:37:03 PM  •  最后回复来自 fqzz
4
为什么 semantic-ui 的 comment 组件会拉长头像图片?
  •  1   
    问与答  •  cnnblike  •  2018-03-25 12:38:45 PM  •  最后回复来自 cnnblike
    1
    想做点开源项目,求一些 idea
    问与答  •  cnnblike  •  2017-11-17 13:43:47 PM  •  最后回复来自 cnnblike
    7
    面试的时候总是笨嘴拙舌脑袋一片空白怎么办?
    问与答  •  cnnblike  •  2017-05-22 10:12:26 AM  •  最后回复来自 Matrixbirds
    7
    请教一下这是哪个 hexo 的主题?
    问与答  •  cnnblike  •  2017-05-06 04:31:07 AM  •  最后回复来自 cnnblike
    2
    HTML5 数据可视化-免费电子书
    分享发现  •  cnnblike  •  2017-03-28 08:13:45 AM  •  最后回复来自 vivagonna
    3
    美国亚马逊送 kindle 电子书( 3 本)
    优惠信息  •  cnnblike  •  2017-02-13 23:19:37 PM  •  最后回复来自 xx12306
    1
    cnnblike 最近回复了
    正确的做法可能是用 memremap ,用 dts+memremap 这样的形式会比较好点:

    https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841683/Linux+Reserved+Memory

    memremap(r.start, resource_size(&r), MEMREMAP_WT);
    @villivateur https://docs.kernel.org/driver-api/device-io.html
    看一下这个,你需要的可能是 ioremap 或者 ioremap_nc
    我仔细分析了一下你遇到的问题,感觉像是这样:
    1. rk3588 这个问题是应该是因为那个页面被设置成了 write-back 而不是 write-through ,由于是闲时写,所以在你系统的内存总线空闲的时候会写入,然后叠加 wb 会在写入的时候刷 L1 ,更新另一个 cluster 的 L2 ,所以显得触发概率低,所以我建议你跑一个高内存总线开销的用户态程序,应该能让任务出问题

    2. rk3568 的场合,你的页表上对这个页面可能没设置 SH ,看这里 https://zhuanlan.zhihu.com/p/532838098
    @villivateur 我最近也在研究这块,有兴趣的话,记得把结论也发我一下
    @villivateur
    内存段和 shareable 的设置和 tlb 有关系,在内核的 mm 那块的逻辑里,具体说是 The arch/arm64/mm/cache-*.S 和 arch/arm64/mm/proc-*.S
    还有一个可能性,我不知道你是用 mem=xxx MB 设置的内存还是用 reversed_memory 设置的内存,所以可能行为会有不同。

    如果你用的 jailhouse 的话,他那个实现对大小 cluster 的支持可能是不对的,看此处注释:
    https://github.com/siemens/jailhouse/blob/master/hypervisor/arch/arm64/entry.S#L453-L458
    如果是 rk3568 或者是 rk3566 上的核间通信,因为内存不一致触发问题说实话可能性很低,按 arm 的定义(和推荐实现),单一一个 cluster 的所有核都在同一个 innershareable 上,理论上 cluster 内所有核能看到的,都是一样的。
    如果是 rk3588 ,那是有可能的,我猜你把一个小核分出来跑 amp ,或者干脆是在 cortex-m 核上跑 amp 通信,那就触发缓存不一致了
    @villivateur 不在一个 cluster 的情况不大可能说实话,你直接说 rk 什么型号吧
    https://linaro-dev.linaro.narkive.com/f2kFnMmW/why-is-the-the-smp-mb-in-arm64-s-barrier-h-dmb-ish
    ”In Arm V8 Architecture Reference Manual£¬there is an example (see beblow) to explain the shareability attribute of clusters. It is easy to know: each cluster is corresponding to a Inner shareable domain; the two cluster comprise a Outer shareable domain.“
    https://developer.arm.com/documentation/100941/0101/Memory-attributes
    内存一致性看这个,一般说来是不在一个 cluster 的时候容易遇到这个

    做 amp 的话,内核态 解决方案 https://developer.arm.com/documentation/ddi0500/e/system-control/aarch32-register-summary/c7-system-operations?lang=en

    做进程通信的话,整个 core affinity ,或者弄个 memory-barrier 应该也行
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5388 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 03:36 · PVG 11:36 · LAX 20:36 · JFK 23:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.