CN117421096B - 基于jailhouse虚拟机监控器SMMU使用方法 - Google Patents

基于jailhouse虚拟机监控器SMMU使用方法 Download PDF

Info

Publication number
CN117421096B
CN117421096B CN202311746553.7A CN202311746553A CN117421096B CN 117421096 B CN117421096 B CN 117421096B CN 202311746553 A CN202311746553 A CN 202311746553A CN 117421096 B CN117421096 B CN 117421096B
Authority
CN
China
Prior art keywords
smmu
jailhouse
root cell
ipa
root
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311746553.7A
Other languages
English (en)
Other versions
CN117421096A (zh
Inventor
马帅
黄磊
战茅
齐璇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kirin Software Co Ltd
Original Assignee
Kirin Software Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kirin Software Co Ltd filed Critical Kirin Software Co Ltd
Priority to CN202311746553.7A priority Critical patent/CN117421096B/zh
Publication of CN117421096A publication Critical patent/CN117421096A/zh
Application granted granted Critical
Publication of CN117421096B publication Critical patent/CN117421096B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请涉及基于jailhouse虚拟机监控器SMMU使用方法,涉及虚拟化技术领域,该方法包括禁用root cell中SMMU驱动,以使得jailhouse可初始化SMMU硬件,修改jailhouse配置文件,增加SMMU相关信息,并将non root cell中支持DMA传输的硬件设备与SMMU绑定,使SMMU与jailhouse共用IPA至PA的转换页表并完成DMA过程中的地址转换。本申请达到了降低性能损耗以及建立空间隔离的效果。

Description

基于jailhouse虚拟机监控器SMMU使用方法
技术领域
本申请涉及虚拟化技术的领域,尤其涉及基于jailhouse虚拟机监控器SMMU使用方法。
背景技术
虚拟化技术是随着集成电路制造工艺不断发展所产生的衍生技术,其主要优势在于节约成本,提高CPU、内存等硬件资源的利用率,提高使用灵活性并实现资源的动态部署。目前,将虚拟化技术应用在集成多个运算核心的芯片系统上可获得更好的系统伸缩性。
jailhouse是由西门子公司推出的一款基于Linux的轻量级虚拟化分区管理程序,其更关注硬件资源的隔离而非硬件资源的虚拟化和复用。jailhouse使用cell单元节点来配置CPU和其他硬件资源的虚拟化功能,且各个节点分配的资源互不干扰。一旦jailhouse被启动,各cell就会分别运行裸机应用程序、Linux或RTOS。
直接内存访问(DMA,Direct Memory Access)是计算机总线架构提供的功能,可使数据直接在I/O设备和物理内存之间传输。DMA是独立于CPU的一种高速数据传输的方式,其传输过程无需CPU参与,可减轻CPU的处理负担,但其最终使用的必须是实际的物理地址。
SMMU(System Memory Management Unit)是ARM架构体系中集成在芯片组或处理器中的硬件单元,其功能类似于MMU,负责系统中虚拟地址和物理地址的转换。不同之处在于,SMMU的服务对象是I/O设备而不是CPU,如图1所示。借助SMMU的虚实地址转换功能,I/O设备被允许使用非物理地址发起DMA请求,保护内存免受恶意设备进行DMA攻击并实现不同设备的DMA地址空间隔离。
由于jailhouse不支持硬件资源的复用,故在使用时常将硬件设备以设备直通的方式隔离至各域中,使虚拟机独占设备并使用原生驱动,像物理机一样直接使用设备,提高系统虚拟化的性能。
在jailhouse使用场景下:non root cell中的虚拟机不会看到真正的物理内存空间PA,而是拥有一个虚拟物理内存空间,称为IPA(Intermediate Physical Address)。但对于虚拟机中支持DMA传输的硬件设备,它将使用IPA发起DMA操作,需要位于EL2异常等级的jailhouse进行地址转换至PA,这将会带来如下缺点:
1. 性能损耗:设备的DMA请求会导致EL2层频繁的陷入陷出,以使jailhouse完成IPA至PA的转换
2. 内存隔离:DMA过程中,无法限制设备仅能访问它所属虚拟机的物理内存空间
发明内容
为解决上述问题,本发明提供了基于jailhouse虚拟机监控器SMMU使用方法,采用如下的技术方案:
基于jailhouse虚拟机监控器SMMU使用方法,包括:
禁用root cell中SMMU驱动,以使得jailhouse可初始化SMMU硬件;
修改jailhouse配置文件,增加SMMU相关信息,并将non root cell中支持DMA传输的硬件设备与SMMU绑定;
使SMMU与jailhouse共用IPA至PA的转换页表并完成DMA过程中的地址转换。
在另一种可能的实现方式中,所述禁用root cell中SMMU驱动,包括:
在root cell Linux设备树文件中,找到SMMU节点,将设备状态修改为禁用。
在另一种可能实现的方式中,所述修改jailhouse配置文件,增加SMMU相关信息,并将non root cell中支持DMA传输的硬件设备与SMMU绑定,包括:
修改root cell配置文件:在platform_info成员中加入SMMU节点;
修改non root cell配置文件:增加PCIE网卡信息,将网卡隔离至non root cell并将PCIE网卡与SMMU绑定,并根据PCIE总线拓扑结构将网卡上游的PCIE bridge隔离至nonroot cell中,以使得网卡在non root cell中可正常使用。
在另一种可能实现的方式中,所述使SMMU与jailhouse共用IPA至PA的转换页表并完成DMA过程中的地址转换,包括:
jailhouse调用SMMU驱动,初始化SMMU,得到能够唯一标识设备的ste结构体;
创建IPA->PA转换页表;
根据设备所属cell,将所述IPA->PA转换页表写入设备的ste结构体中,以实现使SMMU与jailhouse共用IPA至PA的转换页表并完成DMA过程中的地址转换。
综上所述,本申请包括以下有益技术效果:
本发明基于jailhouse虚拟机监控器,通过修改设备树和cell配置信息等文件,使被隔离至分区中的硬件设备能够借助SMMU完成DMA过程。硬件加速了IPA->PA的地址转换过程,限制了设备DMA所访问的内存区域,有效提高I/O虚拟化性能和系统内存安全性。
附图说明
图1是本申请实施例中的一种SMMU与MMU服务对象展示的示意图。
图2是本申请实施例中的一种基于jailhouse虚拟机监控器SMMU使用方法的流程示意图。
图3是本申请实施例中的一种实现SUMM与jailhouse共用页表的流程示意图。
图4是本申请实施例中的一种non root Linux中的DMA过程的过程示意图。
具体实施方式
以下结合附图1-4对本申请作进一步详细说明。
本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本申请的权利要求范围内都受到专利法的保护。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
如图2所示,本申请提供了一种基于jailhouse虚拟机监视器的SMMU使用方法,该方法的实现基于ARMv8架构,CPU选用飞腾公司的E2000-Q,SMMU选用ARM公司的SMMU-v3,Hypervisor选用jailhouse,root OS和non root OS选用Linux,具备DMA功能的硬件设备选用Intel公司的82574 PCIE网卡。具体实施采用的系统及软件版本号为:
root Linux系统:4.19.296内核+ Cent OS-8.4文件系统
non root Linux系统:4.19.296内核+ Gear OS文件系统
Jailhouse版本:V0.12
Jailhouse将ARMv8平台隔离为两个分区,其中原来的主机Linux系统转变为jailhouse下的root cell Linux系统,另外一个分区是non root cell Linux系统。分区间的硬件资源不共享,non root分区拥有PCIE硬件网卡。
该方法的具体实现过程包括:步骤S101、步骤S102以及步骤S103,其中,
步骤S101,禁用root cell中SMMU驱动,以使得jailhouse可初始化SMMU硬件。
对于本申请实施例,由于root Linux与jailhouse中均存在SMMU-V3的驱动,故需禁用root Linux的SMMU驱动,将SMMU-v3的初始化工作交至jailhouse。若root cell不禁用SMMU驱动,则启动jailhouse时会出现root内核SMMU-v3驱动和jailhouse SMMU-v3驱动同时控制一个SMMU硬件的情况。两驱动都会向SMMU的消息队列CMD queue中发送初始化信息,会被CMD队列识别为非法命令,报错如下:
CMDQ error : Illegal command
因此需通过在root cell Linux设备树文件中,找到SMMU节点,将设备状态修改为禁用的方式,达到禁用root cell中SMMU驱动的效果,从而使得jailhouse可控制SMMU驱动。
具体的,通过对以下代码进行修改来实现禁用root cell中SMMU驱动的效果:
iommu@30000000 {
compatible = "arm,smmu-v3";
reg = <0x0 0x30000000 0x0 0x800000>;
interrupts = <0x0 0xf0 0x1 0x0 0xef 0x1 0x0 0xec 0x1 0x0 0xf20x1>;
interrupt-names = "eventq", "priq", "cmdq-sync", "gerror";
dma-coherent;
#iommu-cells = <0x1>;
status = "disabled";
phandle = <0xf>;
};
通过将SMMU-v3的status改为“disable”后,root Linux在启动初始化时,将无法识别到SMMU硬件的存在,故root Linux Kernel中的SMMU驱动不会被执行,从而使得后续SMMU的初始化工作,在启动jailhouse时,由jailhouse中的SMMU驱动来完成。
步骤S102,修改jailhouse配置文件,增加SMMU相关信息,并将non root cell中支持DMA传输的硬件设备与SMMU绑定。
对于本申请实施例,通过修改root cell配置文件以及修改non root cell配置文件的方式,来达到修改jailhouse配置文件,增加SMMU相关信息,并将non root cell中支持DMA传输的硬件设备与SMMU绑定的效果,且由于支持DMA传输的硬件设备为PCIE网卡,因此在将non root cell中支持DMA传输的硬件设备与SMMU绑定前,还需增加PCIE网卡。
其中,修改root cell配置文件的具体方式为在platform_info成员中加入SMMU节点,实现代码如下:
.iommu_units = {
{
.type = JAILHOUSE_IOMMU_SMMUV3,
.base = 0x30000000,
.size = 0x800000,
},
}
其中,SMMU硬件的寄存器基地址base和地址范围size均参考E2000-Q处理器数据手册。jailhouse在启动时会分析配置文件,根据type类型加载相应的SMMU-v3驱动。
修改non root cell配置文件的具体方式为增加PCIE网卡信息,将网卡隔离至nonroot cell并将PCIE网卡与SMMU绑定,并根据PCIE总线拓扑结构将网卡上游的PCIE bridge隔离至non root cell中,以使得网卡在non root cell中也可以正常使用,具体的实现代码如下:
struct jailhouse_pci_device pci_devices[2];
.pci_devices = {
{
/ PCIE bridge信息 />/
.type = JAILHOUSE_PCI_TYPE_BRIDGE,
.domain = 0,
.bdf = 0x0010,
.caps_start = 0,
.num_caps = 5,
……
},
{
/ PCIE 网卡信息 />/
.type = JAILHOUSE_PCI_TYPE_DEVICE,
.domain = 0,
.bdf = 0x2 << 8,
.caps_start = 5,
.num_caps = 6,
……
},
}
SMMU使用stream_id作为设备的唯一标识,对于PCIE设备,stream_id即为设备的BDF号。在本实施例的root Linux中,使用“lspci”命令查询intel 82574网卡的BDF号为0x0200,将其添加至non root cell配置文件中,实现与SMMU的绑定:
.stream_ids = {
/ Intel 82574 PCIE />/
{0x0200},
}
步骤S103,使SMMU与jailhouse共用IPA至PA的转换页表并完成DMA过程中的地址转换。
对于本申请实施例,如图3所示,步骤S103具体包括:
jailhouse调用SMMU驱动,初始化SMMU,得到能够唯一标识设备的ste结构体:SMMU初始化时会为每个具备DMA功能的设备创建一个ste(stream table entry)结构体,用来保存与地址转换有关的数据,该过程发生在jailhouse的enable阶段。
创建IPA->PA转换页表:jailhouse在创建non root cell时,会建立该cell的IPA->PA转换页表,并将页表保存至cell结构体中的arch.mm成员中。
根据设备所属cell,将所述IPA->PA转换页表写入设备的ste结构体中,以实现使SMMU与jailhouse共用IPA至PA的转换页表并完成DMA过程中的地址转换,为使得SMMU能够使用jailhouse创建的页表,在jailhouse的arm_smmu_write_strtab_ent中有如下代码:
struct paging_structures pg_structs = &current->arch.mm;
vttbr = paging_hvirt2phys(pg_structs->root_table);
dst[3] = vttbr & STRTAB_STE_3_S2TTB_MASK;
其中current宏的功能为获取当前non root cell的cell结构体,dst是SMMU根据设备stream_id找到的ste结构体。故上述代码的作用是SMMU驱动将non root cell的IPA->PA转换页表写入每个设备的ste结构体中,从而达到了实现共用页表的效果。
经上述步骤后,被隔离至non root Linux中的PCIE网卡等设备发起DMA时,nonroot Linux告诉设备的是IPA。设备执行DMA操作时,向SMMU发送IPA和stream ID。SMMU根据stream ID找到设备专属的ste结构体,进而找到IPA->PA的转换页表,将IPA转换成PA,如图4所示为non root Linux中的DMA过程,即隔离至non root cell中的设备以IPA发起DMA请求时,SMMU将会代替jailhouse参与地址转换,将IPA转换至PA。SMMU硬件地址转换相较于jailhouse软件地址转换会减少陷入EL2层的次数,从而提高了虚拟化性能,且由于SUMM与jailhouse共用一个IPA->PA转换页表,从而使得DMA所能访问的内存区域只能是jailhouse对应的物理内存区域,进而达到了建立内存隔离的效果。
以上仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (3)

1.基于jailhouse虚拟机监控器SMMU使用方法,其特征在于,包括:
禁用root cell中SMMU驱动,以使得jailhouse可初始化SMMU硬件;
修改jailhouse配置文件,增加SMMU相关信息,并将non root cell中支持DMA传输的硬件设备与SMMU绑定;
使SMMU与jailhouse共用IPA至PA的转换页表并完成DMA过程中的地址转换;
所述使SMMU与jailhouse共用IPA至PA的转换页表并完成DMA过程中的地址转换,包括:
jailhouse调用SMMU驱动,初始化SMMU,得到能够唯一标识设备的ste结构体;
创建IPA->PA转换页表;
根据设备所属cell,将所述IPA->PA转换页表写入设备的ste结构体中,以实现使SMMU与jailhouse共用IPA至PA的转换页表并完成DMA过程中的地址转换。
2.根据权利要求1所述的基于jailhouse虚拟机监控器SMMU使用方法,其特征在于,所述禁用root cell中SMMU驱动,包括:
在root cell Linux设备树文件中,找到SMMU节点,将设备状态修改为禁用。
3.根据权利要求1所述的基于jailhouse虚拟机监控器SMMU使用方法,其特征在于,所述修改jailhouse配置文件,增加SMMU相关信息,并将non root cell中支持DMA传输的硬件设备与SMMU绑定,包括:
修改root cell配置文件:在platform_info成员中加入SMMU节点;
修改non root cell配置文件:增加PCIE网卡信息,将网卡隔离至non root cell并将PCIE网卡与SMMU绑定,并根据PCIE总线拓扑结构将网卡上游的PCIE bridge隔离至nonroot cell中,以使得网卡在non root cell中可正常使用。
CN202311746553.7A 2023-12-19 2023-12-19 基于jailhouse虚拟机监控器SMMU使用方法 Active CN117421096B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311746553.7A CN117421096B (zh) 2023-12-19 2023-12-19 基于jailhouse虚拟机监控器SMMU使用方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311746553.7A CN117421096B (zh) 2023-12-19 2023-12-19 基于jailhouse虚拟机监控器SMMU使用方法

Publications (2)

Publication Number Publication Date
CN117421096A CN117421096A (zh) 2024-01-19
CN117421096B true CN117421096B (zh) 2024-04-05

Family

ID=89532935

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311746553.7A Active CN117421096B (zh) 2023-12-19 2023-12-19 基于jailhouse虚拟机监控器SMMU使用方法

Country Status (1)

Country Link
CN (1) CN117421096B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448681A (zh) * 2020-03-27 2021-09-28 支付宝(杭州)信息技术有限公司 一种虚拟机监控器公钥的注册方法、设备和存储介质
CN114237813A (zh) * 2021-11-15 2022-03-25 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于arm架构的微内核io虚拟化方法及系统
CN114398145A (zh) * 2021-12-06 2022-04-26 麒麟软件有限公司 基于X86平台的Jailhouse运行non-root Linux的方法
CN115664892A (zh) * 2022-10-17 2023-01-31 麒麟软件有限公司 虚拟监控器下Linux虚拟网卡的实现方法
CN115934243A (zh) * 2021-10-06 2023-04-07 联发科技股份有限公司 用于控制对物理地址空间的访问的系统及方法
CN116383101A (zh) * 2022-12-26 2023-07-04 阿里云计算有限公司 内存访问方法、内存管理单元、芯片、设备和存储介质
CN116719613A (zh) * 2023-08-10 2023-09-08 麒麟软件有限公司 基于虚拟监控器实现Linux下PCIe物理设备隔离的方法
CN116860350A (zh) * 2023-05-30 2023-10-10 深圳开鸿数字产业发展有限公司 Jailhouse工具的配置方法、电子设备及计算机可读存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269992B2 (en) * 2018-03-22 2022-03-08 Trulyprotect Oy Systems and methods for hypervisor-based protection of code

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113448681A (zh) * 2020-03-27 2021-09-28 支付宝(杭州)信息技术有限公司 一种虚拟机监控器公钥的注册方法、设备和存储介质
CN115934243A (zh) * 2021-10-06 2023-04-07 联发科技股份有限公司 用于控制对物理地址空间的访问的系统及方法
CN114237813A (zh) * 2021-11-15 2022-03-25 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于arm架构的微内核io虚拟化方法及系统
CN114398145A (zh) * 2021-12-06 2022-04-26 麒麟软件有限公司 基于X86平台的Jailhouse运行non-root Linux的方法
CN115664892A (zh) * 2022-10-17 2023-01-31 麒麟软件有限公司 虚拟监控器下Linux虚拟网卡的实现方法
CN116383101A (zh) * 2022-12-26 2023-07-04 阿里云计算有限公司 内存访问方法、内存管理单元、芯片、设备和存储介质
CN116860350A (zh) * 2023-05-30 2023-10-10 深圳开鸿数字产业发展有限公司 Jailhouse工具的配置方法、电子设备及计算机可读存储介质
CN116719613A (zh) * 2023-08-10 2023-09-08 麒麟软件有限公司 基于虚拟监控器实现Linux下PCIe物理设备隔离的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向MPSoC虚拟化体系结构的操作系统关键技术;陈鲍孜;《中国博士学位论文全文数据库 信息科技辑》;20210115(第2021年第01期期);第一章-第五章 *

Also Published As

Publication number Publication date
CN117421096A (zh) 2024-01-19

Similar Documents

Publication Publication Date Title
AU2009357325B2 (en) Method and apparatus for handling an I/O operation in a virtualization environment
US8719464B2 (en) Efficient memory and resource management
WO2018041075A1 (zh) 一种应用于计算机的资源访问方法和计算机
US7890669B2 (en) Computer system for sharing I/O device
Liu et al. High Performance VMM-Bypass I/O in Virtual Machines.
CN101751284B (zh) 一种分布式虚拟机监控器的i/o资源调度方法
US9734096B2 (en) Method and system for single root input/output virtualization virtual functions sharing on multi-hosts
US20130145055A1 (en) Peripheral Memory Management
US7370137B2 (en) Inter-domain data mover for a memory-to-memory copy engine
US20210216453A1 (en) Systems and methods for input/output computing resource control
US20070136554A1 (en) Memory operations in a virtualized system
US8706942B2 (en) Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices
WO2013081941A1 (en) Direct device assignment
US20180321964A1 (en) Computer, device allocation management method, and program recording medium
CN105320628A (zh) 使能单根i/o设备多根共享的适配装置、系统及方法
Tu et al. Secure I/O device sharing among virtual machines on multiple hosts
US11036649B2 (en) Network interface card resource partitioning
CN116719613B (zh) 基于虚拟监控器实现Linux下PCIe物理设备隔离的方法
CN116737322B (zh) 虚拟机同时支持PCIe虚拟设备和物理设备的方法
CN117421096B (zh) 基于jailhouse虚拟机监控器SMMU使用方法
CN112559120B (zh) 定制化pcie总线io虚拟化支撑方法
Yin et al. A user-space virtual device driver framework for Kubernetes
EP3255544B1 (en) Interrupt controller
Liu et al. Research on Hardware I/O Passthrough in Computer Virtualization
Nanos et al. MyriXen: message passing in Xen virtual machines over Myrinet and Ethernet

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant