问题标签 [apic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
391 浏览

oauth - 在 Datapower/API Connect [OAuth2] 中禁用一次刷新令牌?

我们在 API Connect/Datapower 中开发了 OAuth/OIDC 服务。

当用户请求新的 refresh_token 时 - 如果流程中发生任何意外错误,则不会发出新的 refresh_token,并且他们现有的 refresh_token 会被撤销。这会强制用户通过新的同意流程。如果大量客户由于某些意外错误而受到影响,这可能会出现问题。我们希望旧的 refresh_token 在这种情况下仍然有效。

我们向我们的 IBM 支持联系人提出了这个问题 - 他说这按预期工作(即 - 它应该撤销旧的 refresh_token 作为第一个操作 - 它是单次使用的,无论结果如何)。

他确实建议可以将 refresh_token 配置为多次使用,直到它被撤销/过期。

我不确定如何执行此操作 - 或者它支持哪些版本。他说'(在 2018.4.1.x 中)?对于 v5 gw,请使用扩展来启用它,您将需要最新的 DP 固件版本才能实现上述功能。很难弄清楚这一点。IBM 开发者论坛甚至将我引导至 Stack Overflow……

有没有人有更多关于启用 refresh_token 多次使用的信息/经验?或者支持哪些版本(或任何有关此的文档的链接)?我正在努力寻找任何具体的东西。

谢谢

0 投票
1 回答
59 浏览

x86-64 - #GP 在某些 ISR、APIC 和 PIT 上不发送 IRQ

我一直在编写代码以使用 PIT 测试 APIC 的速度。有几个问题我想不通。首先,在为两个计时器测试我的 ISR 时,我在 iretq 指令上遇到了一般保护错误。其次,两个定时器实际上都没有触发任何中断。对此的任何帮助将不胜感激。

链接到相关文件。

0 投票
0 回答
441 浏览

linux-kernel - cpu 信息中缺少 Linux 核心 ID

我正在运行一些并行计算的机器有问题。到目前为止,我认为核心 id 需要按顺序排列。但是在这台机器上我有:

在此处输入图像描述

我得到以下输出:

在此处输入图像描述

由于我使用的代码假设核心数等于max(core ids) + 1,这会导致很多问题。我不能轻易地在代码中改变这个假设。因此,我的问题如下:

  1. 核心 ids 5-7 是否丢失了?
  2. 还是这些核心确实存在但没有“激活”?
  3. 我可以在某种意义上改变这个,我可以重命名 ID 吗?
  4. 从某种意义上说,核心 ID 永远不会按顺序排序,我有什么问题吗?
  5. 什么会导致这种不寻常的排序?
0 投票
1 回答
260 浏览

linux - 读取 APIC 定时器寄存器失败

我正在编写一个 Linux 内核模块来读取转储本地 APIC 定时器寄存器。
我在 X86_64 平台上使用 Ubuntu 16.04 桌面。
X2APIC 被禁用,并且 grub.cfg 中的 nohz=off。

我正在使用以下代码来读取 APIC 定时器寄存器。

我得到了这些,

令我惊讶的是,初始计数器和当前计数器都是 0,对吗?

还是我错过了什么或做错了什么?

0 投票
1 回答
292 浏览

ibm-cloud - IBM Cloud API Connect 安全网关

最近,当我尝试在 IBM Cloud 上的 API Connect 中设置安全网关时,我开始看到一个问题,我以前让它工作,但看起来他们更改了这个向导界面,并且从那时起它就坏了,这是我为重新创建问题所做的事情:

  1. 在 IBM Cloud 上设置新的 APIC 实例
  2. API connect Manager UI > Admin > Secure Gateways > 添加(名称和保存)
  3. 创建后,在 Secure Gateway 客户端部分中,单击 +设置

无论我选择哪种类型的客户端(DataPower、Docker 或安装程序),我都看不到任何 ID 或令牌生成

有人面临同样的问题吗?

尝试设置 Secure Gateway 客户端时为空 ID 和令牌

0 投票
1 回答
354 浏览

linux-kernel - 如何从内核模块读/写 LAPIC 寄存器?

我正在尝试禁用所有中断。它们中的大多数都很容易,但我对不可屏蔽中断 (NMI) 有疑问。要禁用它们,我想在本地 APIC 中操作 LVT 寄存器。目前我正在内核模块中进行测试,因为那是环境,最终代码应该运行。

如何读取/写入 APIC 的内存映射寄存器?

我已经阅读了很多文章,每个人都建议这个程序。我还尝试直接访问 *mapped 指针,结果相同。

而不是 foo() 函数,我实现了正确地址的查找。但是根据英特尔手册和我个人的检查,APIC 总是被映射到物理地址 0xFEE00000,这很有趣,因为我还在具有 2 GB RAM 的虚拟机上尝试了该程序。

输出:

地址 0xFEE00020 应该输出本地 APIC ID,可能不是 0xFFFFFFFF。
我还尝试读取应该输出 LAPIC 版本的 0xFEE00030。

0 投票
0 回答
431 浏览

c - 如何为 x2APIC 生成的 IPI 注册中断处理程序?

我已x2APIC在主机操作系统上启用,并希望在主机级别本身(而不是在 VM 内部)生成 IPI。

要检查是否启用了 x2APIC,我运行以下命令:

并根据 Intel SDM bit 10 显示x2APIC状态。上述命令的结果是 -fee00d00d-1101. 因此,第 10 位和第 11 位都被启用,这意味着 LAPIC 可以在 APIC 和 x2APIC 模式下工作。

启用此功能后,我正在尝试编写一个中断处理程序,以便我可以处理由 lapic 生成的 IPI。

使用 加载此模块后insmod,我希望看到一个条目,但是当我运行命令时/proc/interrupts收到错误消息request_irq failed with -22(无效参数) 。dmesg

您能否指出,该模块有什么问题?或者我还需要做什么来注册中断处理程序?

0 投票
2 回答
246 浏览

python-3.x - Python读取MP3封面文件

我正在尝试使用以下代码从 MP3 文件中读取封面。

但我收到以下错误消息:

0 投票
1 回答
1182 浏览

assembly - Questions about APIC interrupt

I'm following a book to write a linux like kernel, however, met problems with the APIC chapter.

Before everything, I'll list my platform. I'm on Windows 10, using Virtual Box to run Ubuntu 18.04, and run test codes on bochs within it.

Currently my understanding about APIC are as follow:

1, There are built on Local APIC on each core and I/O APIC on motherboard

2, Local APIC can be accessed using memory mapping or MSR referencing

3, I/O APIC are accessed by 3 registers IOREGSEL, IOWIN, EOI. The basic idea is to set the value for IOREGSEL and access the corresponding register with IOWIN.

4, There are 3 mode, the interested one is Symmetric I/O mode

5, I/O APIC have 24 pins, pin 1 is linked to keyboard

6, To enable APIC and I/O APIC, there are serials of works to do:

a) Mask 8529A interrupt

b) Enable xAPIC and 2xAPIC, so that MSR access are possible

c) Mask all LVT (if Local interrupt are not needed)

d) Setting RTE entries for I/O APIC

e) Setting IMCR register to 0x01h, force 8529A interrupt pass signal to I/O APIC

f) Find Other Interrupt Control Register(OIC) through Root Complex Base Address Register(RCBA), and set OIC[8]=1b to enable I/O APIC

Now I'll present my questions:

1, On both bochs and Virtual Box, the Max LVT Entry number is detected as 6 (according to Manual, there are 6+1=7 LVT entries), and the LVT_CMCI entry can not be accessed(gp fault).

2, It is said different chips on motherboard will map RCBA to different port, and I would have to look it up through manuals. But would there be a way to detect it by software itself, otherwise how did the commercial OS fit different platform.

3, Since I'm on virtual machine, how could I detect the accessibility of RCBA

Thanks to anyone who can provide a clue to my questions or helping me understand more about this chapter.


I'll present some of my code on setting up APIC for a simple keyboard interrupt.

First would be interrupt handling function

Ret_Int & Ent_Int are macros defined to handle the interrupt stack, wrmsr() function write 0 to MSR address 0x80b(EOI)

Next would be the setup function for LAPIC and I/O APIC, assuming that physical address 0xFEC00000 is already mapped in page table

So according to the answers, the I/O APIC is set to open once I complete initialization for RTEs. If any one can be so kind to tell me if the above code would work or not(for a simple keyboard interrupt). Thank you so much.

0 投票
1 回答
743 浏览

operating-system - 如何找出 I/O APIC 上的中断源?

我了解 I/O APIC 芯片有 24 个 PIN,通常单片机系统会分别映射 PIN 0~23 IRQ 32~55。此外,我可以编辑相关的 RTE 来分配中断处理函数。

但是我怎样才能找出每个 PIN 上的 I/O APIC 中断源呢?

我知道它与 ACPI 有关,但详细我应该怎么做,它是否映射到某个 ACPI 表上?或者我应该使用 AML 来检查它?

非常感谢你!!