อ่าน 4 นาที
ftrace
ftrace ( Function Tracer ) เป็น เฟรมเวิร์ก การติดตาม สำหรับ เคอร์เนล Linux แม้ว่าชื่อเดิม Function Tracer จะมาจากความสามารถของ ftrace ในการบันทึกข้อมูลที่เกี่ยวข้องกับ...
ftrace
| ftrace | |
|---|---|
| นักพัฒนา | สตีเวน รอสเตดท์ และคนอื่นๆ |
| ปล่อย | 9 ตุลาคม 2551 |
| ระบบปฏิบัติการ | ลินุกซ์ |
| พิมพ์ | ส่วนขยายเคอร์เนล |
| ใบอนุญาต | GNU GPLเวอร์ชัน 2 [ 1 ] |
| เว็บไซต์ | www.kernel.org/doc/html/latest/trace/index.html |
ftrace ( Function Tracer ) เป็นเฟรมเวิร์กการติดตาม สำหรับเคอร์เนล Linuxแม้ว่าชื่อเดิม Function Tracer จะมาจากความสามารถของ ftrace ในการบันทึกข้อมูลที่เกี่ยวข้องกับการเรียกใช้ฟังก์ชัน ต่างๆ ที่ดำเนินการในขณะที่เคอร์เนลกำลังทำงาน แต่ความสามารถในการติดตามของ ftrace ครอบคลุมการทำงานภายในของเคอร์เนลในวงกว้างกว่ามาก[ 2 ] [ 3 ]
รายละเอียด
ด้วยปลั๊กอิน tracer ต่างๆ ftrace สามารถกำหนดเป้าหมายไปยังtracepoint แบบคงที่ต่างๆ ได้ เช่นเหตุการณ์การจัดกำหนดการการขัดจังหวะI/O ที่แมปหน่วยความจำการเปลี่ยนสถานะพลังงาน CPUและการดำเนินการที่เกี่ยวข้องกับระบบไฟล์และเวอร์ชวลไลเซชันนอกจากนี้ ยังมีการติดตามการเรียกใช้ฟังก์ชันเคอร์เนลแบบไดนามิก ซึ่งสามารถจำกัดให้เหลือเฉพาะฟังก์ชัน ย่อย โดยใช้glob ได้และสามารถสร้างกราฟการเรียกใช้และ รายงานการใช้งาน สแต็กได้ในขณะเดียวกัน ftrace สามารถใช้เพื่อวัดความหน่วง ต่างๆ ภายในเคอร์เนล Linux เช่น ระยะเวลาที่การขัดจังหวะหรือการแย่งชิงถูกปิดใช้งาน[ 2 ] [ 4 ] [ 5 ] : 3–11, 14, 18
เคอร์เนล Linux ที่เปิดใช้งาน ftrace ถูกสร้างขึ้นโดยการเปิดใช้ งานตัวเลือก การกำหนดค่าเคอร์เนลCONFIG_FUNCTION_TRACER การโต้ตอบรันไทม์ทั้งหมดกับ ftrace ดำเนินการผ่านไฟล์เสมือน ที่อ่านและเขียนได้ ซึ่งอยู่ใน ระบบไฟล์ debugfs ที่ติดตั้งไว้โดยเฉพาะ ด้วยเหตุนี้ ftrace จึงไม่ต้องการ ยูทิลิตี้ พื้นที่ผู้ใช้ เฉพาะ เพื่อใช้งาน[ 2 ] [ 3 ] [ 6 ] อย่างไรก็ตาม มียูทิลิตี้พื้นที่ผู้ใช้เพิ่มเติมที่ให้คุณสมบัติขั้นสูงกว่าสำหรับการบันทึก การวิเคราะห์ และการแสดงภาพข้อมูล ตัวอย่างของยูทิลิตี้ดังกล่าว ได้แก่trace -cmdและKernelShark [ 2 ] [ 5 ] : 31–47 [ 7 ] [ 8 ]
ภายใน ftrace อาศัย กลไก การสร้างโปรไฟล์ของgccเพื่อเพิ่มคำสั่งเครื่อง ลง ใน เวอร์ชัน ที่คอมไพล์แล้วของ ฟังก์ชันเคอร์เนลระดับ ซอร์สโค้ด ทั้งหมด ซึ่งจะเปลี่ยนเส้นทางการทำงานของฟังก์ชันไปยัง แทรมโพลีน และปลั๊กอินตัวติดตาม ของ ftrace ที่ทำการติดตามจริง คำสั่ง " จุดเริ่มต้น " เหล่านี้ที่สร้างโดย gcc จะถูกแก้ไขโดย ftrace เมื่อเคอร์เนลเริ่มทำงานและจะเปลี่ยนแปลงในภายหลังขณะรันไทม์โดย ftrace ระหว่างNOPและการกระโดด จริงไป ยังแทรมโพลีนการติดตาม ขึ้นอยู่กับประเภทการติดตามและตัวเลือกที่กำหนดค่าไว้ขณะรันไทม์[ 9 ] [ 10 ]
ftrace ได้รับการพัฒนาโดย Steven Rostedt เป็นหลัก และถูกรวมเข้ากับเคอร์เนล Linux เวอร์ชันหลักในเคอร์เนลเวอร์ชัน 2.6.27 ซึ่งเผยแพร่เมื่อวันที่ 9 ตุลาคม พ.ศ. 2551 [ 11 ]
ดูเพิ่มเติม
- DTrace – เฟรมเวิร์กสำหรับการติดตามปัญหาเพื่อแก้ไขปัญหาในระดับเคอร์เนลและแอปพลิเคชัน ซึ่งพัฒนาขึ้นครั้งแรกสำหรับระบบปฏิบัติการ Solaris
- ktrace – ยูทิลิตี้สำหรับ BSD Unix และ Mac OS X ที่ใช้ติดตามการทำงานร่วมกันระหว่างเคอร์เนลและโปรแกรม
- ltrace – ยูทิลิตี้สำหรับการดีบักใน Linux จะแสดงการเรียกใช้ไลบรารีที่ใช้ร่วมกันโดยแอปพลิเคชันในระดับผู้ใช้
- strace – ยูทิลิตี้สำหรับการดีบักใน Linux และระบบที่คล้าย Unix บางระบบ ทำหน้าที่ตรวจสอบการเรียกใช้ระบบที่โปรแกรมใช้ และสัญญาณทั้งหมดที่ได้รับ
- SystemTap – ภาษาสคริปต์และยูทิลิตี้ที่ใช้ในการตรวจสอบระบบ Linux
ลิงก์ภายนอก
- การดีบักเคอร์เนลโดยใช้ Ftrace – ตอนที่ 1และตอนที่ 2 , LWN.net , ธันวาคม 2009, โดย Steven Rostedt
- ความลับของโปรแกรมติดตามฟังก์ชัน Ftrace , LWN.net, 20 มกราคม 2010, โดย Steven Rostedt
- Ftrace: สวิตช์ไฟที่ซ่อนอยู่ , LWN.net, 13 สิงหาคม 2014, โดย Brendan Gregg
- แหล่งที่มาของบั๊กความเสียหาย e1000e , LWN.net, 21 ตุลาคม 2551, โดย Jonathan Corbet
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ftrace
ftrace ( Function Tracer ) เป็น เฟรมเวิร์ก การติดตาม สำหรับ เคอร์เนล Linux แม้ว่าชื่อเดิม Function Tracer จะมาจากความสามารถของ ftrace ในการบันทึกข้อมูลที่เกี่ยวข้องกับ...
รายละเอียด
ด้วยปลั๊กอิน tracer ต่างๆ ftrace สามารถกำหนดเป้าหมายไปยัง tracepoint แบบคงที่ต่างๆ ได้ เช่นเหตุการณ์ การจัดกำหนดการ การขัดจังหวะ I/O ที่แมปหน่วยความจำ การเปลี่ยน สถานะพลังงาน CPU และการดำเนินการที่เกี่ยวข้องกับ ระบบไฟล์ และ เวอร์ชวลไลเซชัน นอกจากนี้...
ดูเพิ่มเติม
DTrace – เฟรมเวิร์กสำหรับการติดตามปัญหาเพื่อแก้ไขปัญหาในระดับเคอร์เนลและแอปพลิเคชัน ซึ่งพัฒนาขึ้นครั้งแรกสำหรับระบบปฏิบัติการ Solaris ktrace – ยูทิลิตี้สำหรับ BSD Unix และ Mac OS X ที่ใช้ติดตามการทำงานร่วมกันระหว่างเคอร์เนลและโปรแกรม ltrace –...
ลิงก์ภายนอก
การดีบักเคอร์เนลโดยใช้ Ftrace – ตอนที่ 1และตอนที่ 2 , LWN.net , ธันวาคม 2009, โดย Steven Rostedt ความลับของโปรแกรมติดตามฟังก์ชัน Ftrace , LWN.net, 20 มกราคม 2010, โดย Steven Rostedt Ftrace: สวิตช์ไฟที่ซ่อนอยู่ , LWN.