กลับไปหน้าบทความ

อ่าน 4 นาที

ftrace

ftrace ( Function Tracer ) เป็น เฟรมเวิร์ก การติดตาม สำหรับ เคอร์เนล Linux แม้ว่าชื่อเดิม Function Tracer จะมาจากความสามารถของ ftrace ในการบันทึกข้อมูลที่เกี่ยวข้องกับ...

ftrace

ftrace
นักพัฒนาสตีเวน รอสเตดท์ และคนอื่นๆ
ปล่อย9 ตุลาคม 2551 ( 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
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Ftrace&oldid=1329879139 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ 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.