发明名称 Suspending transactional-memory transactions without stack corruption
摘要 A technique for suspending transactional memory transactions without stack corruption. A first function that begins a transactional memory transaction is allocated a stack frame on a default program stack, then returns. Prior to suspending the transaction, or after suspending the transaction but prior to allocating any suspended mode stack frames, either of the following operations is performed: (1) switch from the default program stack to an alternative program stack, or (2) switch from a default region of the default program stack where the first function's stack frame was allocated to an alternative region of the default program stack. Prior to resuming the transaction, or after resuming the transaction but prior to allocating any transaction mode stack frames, either of the following operations is performed: (1) switch from the alternative program stack to the default program stack, or (2) switch from the alternative stack region to the default stack region.
申请公布号 US9594589(B2) 申请公布日期 2017.03.14
申请号 US201414492774 申请日期 2014.09.22
申请人 International Business Machines Corporation 发明人 McKenney Paul E.
分类号 G06F9/46 主分类号 G06F9/46
代理机构 代理人 Duft Walter W.
主权项 1. A system, comprising: one or more processors; a memory coupled to said one or more processors; control logic implementing a hardware transactional memory (HTM) subsystem using said memory, said control logic being operable to perform operations for suspending transactional memory transactions without stack corruption, said operations comprising: invoking a first function that begins a transactional memory transaction, said first function being allocated a first function stack frame on a default program stack; returning from said first function and deallocating said first function stack frame; prior to suspending said transaction, or after suspending said transaction but prior to allocating any suspended mode stack frames, performing either of the following operations: (1) switching from said default program stack to an alternative program stack, or (2) switching from a default region of said default program stack where said first function stack frame was allocated to an alternative region of said default program stack; and prior to resuming said transaction, or after resuming said transaction but prior to allocating any transaction mode stack frames, performing either of the following operations: (1) switching from said alternative program stack to said default program stack, or (2) switching from said alternative region of said default program stack to said default region of said default program stack.
地址 Armonk NY US