- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
RIDL 漏洞利用需要攻击者触发页面错误才能从行填充缓冲区读取陈旧数据。但根据 About the RIDL vulnerabilities and the "replaying" of loads ,也可以使用辅助负载。
该问题九次提到辅助/辅助负载,但我仍然无法理解这种负载的作用或触发方式。这与 TLB 相关,并且“导致需要微码辅助的页面浏览”。
有人可以解释一下辅助/辅助负载是什么,最好用一个已解决的例子吗?
最佳答案
您在该引文中省略了句子的其余部分,这解释了为什么页面遍历可能需要微码辅助:“...导致需要微码辅助的页面遍历(在页表条目中设置访问位) 。
x86 ISA 表示,读取或写入页面将在该映射的页表条目 (PTE) 中设置“已访问”位,如果该位尚未设置。操作系统可以使用它来查看哪些页面实际上被定期访问(通过清除访问位并让硬件再次设置它),因此如果需要释放一些物理页面,它们可以决定要分页哪些页面。 “脏”位的故事相同,它让操作系统知道页面是否需要同步回文件或其他后备存储(如果有)。 (例如,操作系统如何实现 mmap(MAP_SHARED,PROT_WRITE)
)
填充 TLB 条目的页面遍历是纯专用硬件,但使用存储更新那些 PTE 位非常罕见,可以留给微码处理; CPU基本上会陷入内部微码并在恢复之前运行它。
在某些 CPU 中使用了类似的机制来处理硬连线 FPU 无法处理的非正规浮点结果。这让常见情况(标准化浮点数)具有更低的延迟。
有关的:
perf stat -e other_assists.any
[Number of times a microcode assist is invoked by HW other than FP-assist. Examples include AD (page Access Dirty) and AVX* related assists]
msync(MS_SYNC)
在文件支持的映射上应清除脏位。 IDK 如果它会清除访问位。大概是一个新的文件支持
mmap
使用 MAP_POPULATE 将清除其访问位,但连接到页表中,因此不需要
#PF
页面错误异常。也许也适用于
MAP_ANONYMOUS
.
madvise(MADV_FREE)
在私有(private)匿名页面上清除脏位,基于
the man page 的方式描述它。它还可能清除 Accessed 位,因此负载可能还需要辅助 IDK。
MADV_FREE
(since Linux 4.5)
The application no longer requires the pages in the range specified by addr and len. The kernel can thus free these pages, but the freeing could be delayed until memory pressure occurs. For each of the pages that has been marked to be freed but has not yet been freed, the free operation will be canceled if the caller writes into the page. After a successful MADV_FREE operation, any stale data (i.e., dirty, unwritten pages) will be lost when the kernel frees the pages. However, subsequent writes to pages in the range will succeed and then kernel cannot free those dirtied pages, so that the caller can always see just written data. If there is no subsequent write, the kernel can free the pages at any time. Once pages in the range have been freed, the caller will see zero-fill-on-demand pages upon subsequent page references.The MADV_FREE operation can be applied only to private anonymous pages (see mmap(2)). In Linux before version 4.12, when freeing pages on a swapless system, the pages in the given range are freed instantly, regardless of memory pressure.
mprotect
, 或者
mmap(MAP_FIXED|MAP_POPULATE)
一个新的匿名页面来替换当前页面。使用 MAP_POPULATE 它应该已经连接到 HW 页表(首次访问时不需要软页错误)。脏位应该是清楚的,也许还有访问位。
vpmaskmovd
使用 mask=0 存储(没有实际存储)将触发写保护页面上的帮助,例如一个懒惰分配的
mmap(PROT_READ|PROT_WRITE)
只读过的页面,没有写过的页面。所以它仍然是 CoW 映射到零的共享物理页面。
#PF
页面错误。 (该页面实际上是写保护的,而不仅仅是干净的。)
mmap(MAP_POPULATE)
中的掩码负载进行测试缓冲区以查看他们是否接受协助,但未设置已访问位。
关于x86 - 什么是辅助/辅助负载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61452899/
我正在尝试 specFlow 辅助,但不确定如何从表中创建类属性。 想象一下我有这门课: public class Tracking { public string Category { ge
我如何使用带 IOS 应用程序的辅助 GPS 来计算给定区域(例如建筑物)内部(或外部)某人的位置? 是否有可能在几英尺内就足够准确? 这样做正确吗? 是否可以在计算中使用多个 wifi 连接? 最佳
我在 wiki 和其他一些文本中看到,他们说冒泡排序、插入排序、选择排序等的空间复杂度是 O(1) 辅助。它们是否指的是程序中使用的变量所需的常量存储单元。 最佳答案 是的,他们指的是大多数排序都是就
默认情况下,页面上有 3 个点击事件(蓝色 X、蓝色 +、灰色 X)。每个人都会打开一个模式框。 每个模式框都有一个按钮。其中两个模态框,一个用于蓝色 X,一个用于蓝色 +,内部都有功能按钮。当我单击
我正在寻找 Kotlin 的 gigasecond 练习的解决方案:http://exercism.io/exercises/kotlin/gigasecond/readme 。我可以理解它如何需要两
我基本上刚刚开始使用 PyGame 进行开发,但我在整个 Sprite 概念方面遇到了麻烦。我一直在到处寻找有关如何使用它的指南,但似乎找不到任何指南。我想知道这一切是如何运作的基本概念。这是我一直在
我有一些无法运行的 JavaScript 代码。我尝试过移动一些东西,并更改一些关键字,但到目前为止没有任何效果。我会让你们尝试一下。 这是 JavaScript 文件: var GAME =
我有这个注册网页是我在帮助下创建的,感谢这里的人。在尝试使其响应之前,我只是做了一些调整。如何在复选框及其文本和底部的 div 之间创建空间而没有间隙。有什么建议吗? https://jsfiddle
我正在尝试检查是否启用了 WiFi 辅助。当我连接到我的接入点以获取一些数据时,我遇到了问题,当我的连接不佳时,我的蜂窝数据被使用并且它干扰了我的接入点。有什么方法可以检查是否启用了此选项? 最佳答案
为了安全起见,我希望使用异地复制/辅助 Blob 存储容器作为 AzureML 数据存储的数据源。所以我执行以下操作: 新数据存储 输入名称 + Azure Blob 存储 + 手动输入 对于 URL
我的讲师现在有一个我以前从未见过的奇怪习惯,我想知道这是 Haskell 标准还是他的编程风格的怪癖。 基本上,他经常会做这样的事情: functionEx :: String -> Int func
我想从可移动SD卡中删除文件,我尝试了很多方法但没有效果。 尝试过: file.delete(); 和 File file = new File(selectedFilePath); boolean
我正在开发一款 Android 应用,用户必须能够在其中进行身份验证,然后调用 YouTube 数据 API。 我可以毫无问题地使用主帐户对用户进行身份验证,使用 Google 登录对我和用户来说一切
命令: sudo mv /temp/hello.txt /path/to/destination/ 然后我通过 key 存储添加了密码。 我确信写在 sudo.password 中的密码是正确的。
我需要编写一个 java 代码来获取给定集群的辅助名称节点的 IP 地址。给定集群的 Namenode 的 IP 地址。 我能够获取数据节点和名称节点的报告,但无法找到获取辅助名称节点的 IP 地址的
Cay Horstmann 的书《不耐烦的 Scala》中的一个非常简单的练习一直让我感到困惑。是关于primary , auxiliary和 default primary构造函数: ex 5.10
我正在尝试确定 Google Cloud DNS 是否支持通过 NOTIFY 请求进行辅助 DNS (AXFR/IXFR) 传输?我在网上找不到任何东西,Google 也没有明确声明不支持它。 最佳答
我有一个简单的 Kotlin 类: data class ValveSpan(val begin:Duration, val end:Duration, val key:String):Compara
我有一个与最初在 UISplitView 中加载辅助 View 相关的快速问题。目前,我已经在 masterVC.swift 中获得了代码,可以用数组中的第一个对象(如果有)填充detailsVC。这
我正在使用这个命令来获取另一个命令的进程 ID: ps aux | grep 7000.conf | awk '{print $2}' 这将返回两个 PID: 7731 22125 我只想要第一个。第
我是一名优秀的程序员,十分优秀!