คำถามติดแท็ก kernel

ทุกอย่างเกี่ยวกับเมล็ด UNIX: การพัฒนา, การกำหนดค่า, การรวบรวม, การออกแบบและอื่น ๆ

4
เหตุใด kworker จึงใช้ทรัพยากรมากมายบน Linux 3.0.0-12- เซิร์ฟเวอร์
เมื่อวันศุกร์ที่แล้วฉันอัพเกรดเซิร์ฟเวอร์ Ubuntu เป็น 11.10 ซึ่งตอนนี้ทำงานกับเคอร์เนล 3.0.0-12 เซิร์ฟเวอร์ ตั้งแต่นั้นมาประสิทธิภาพโดยรวมก็ลดลงอย่างมาก ก่อนที่การอัปเกรดโหลดระบบจะอยู่ที่ประมาณ 0.3 แต่ปัจจุบันอยู่ที่ 22-30 ในระบบ CPU 8 คอร์ที่มี RAM ขนาด 16GB (ฟรี 10GB ไม่มีการใช้ swap) ฉันจะตำหนิไดรเวอร์ระบบไฟล์ BTRFS และอาร์เรย์ MD ที่อยู่ภายใต้เนื่องจาก [md1_raid1] และ [btrfs-transacti] ใช้ทรัพยากรจำนวนมาก แต่ [kworker / *: *] ทั้งหมดกินเยอะขึ้น sar ได้แสดงสิ่งที่คล้ายกันนี้ตลอดตั้งแต่วันศุกร์ที่: 11:25:01 CPU %user %nice %system %iowait %steal %idle 11:35:01 all …
19 kernel  performance  cpu  load 

3
ลายเซ็น PKCS # 7 ไม่ได้ลงชื่อด้วยคีย์ที่เชื่อถือได้
ติดตั้ง Ubuntu ที่มี SIP ถูกปิดการใช้งานใน MacBook 2017 - ปัญหา 0 เริ่มต้นในไม่กี่วินาที ฉันสร้างมันขึ้นมาแล้วสร้างปัญหาขึ้นมาในขณะที่พยายามทำให้ WiFi ทำงานได้ เมื่อถึงจุดหนึ่ง (มันสายมาก) การรวมกันของ 3 สิ่งที่เกิดขึ้น: ฉันเปิดใช้งาน SIP ฉันพยายามติดตั้งไดรเวอร์ Broadcom 4360x ฉันติดตั้งไดรเวอร์สำหรับทัชแพดใหม่จากที่เก็บ GitHub เหล่านี้คือรายการ: [ +0.001007] input: Apple Inc. iBridge as /devices/pci0000:00/0000:00:14.0/usb1/1-3/1-3:1.2/0003:05AC:8600.0001/input/input7 [ +0.057765] hid-generic 0003:05AC:8600.0001: input,hidraw0: USB HID v1.01 Keyboard [Apple Inc. iBridge] on usb-0000:00:14.0-3/input2 [ …

1
ปิดการใช้งานโมดูลเคอร์เนลซึ่งรวบรวมในเคอร์เนล (ไม่โหลด)
เซิร์ฟเวอร์ของฉันมีการ์ดเครือข่ายออนบอร์ด 10-Gbit สองใบและสองใบ ฉันต้องปิดการใช้งานการ์ดเครือข่าย 1-Gbit อย่างสมบูรณ์เพื่อที่ifconfig -aจะไม่แสดง การ์ดเครือข่ายใช้โมดูลเคอร์เนลที่แตกต่างกัน การใช้ 10 กิกะบิตและการใช้ixgbe 1 Gbitigb 01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01) Subsystem: Dell Ethernet 10G 4P X520/I350 rNDC Kernel driver in use: ixgbe 05:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01) Subsystem: Dell …

2
ทำไม Red Hat Linux ใช้เคอร์เนลเก่าแบบนี้
ทำไม RHEL (และอนุพันธ์) ใช้เคอร์เนลเก่าแบบนี้? ใช้ 2.6.32-xxx ซึ่งดูเก่าสำหรับฉัน พวกเขาสนับสนุนฮาร์ดแวร์ที่ใหม่กว่าด้วยเคอร์เนลนั้นได้อย่างไร เท่าที่ฉันรู้ว่าการแจกแจงแบบนี้ทำงานบนฮาร์ดแวร์ที่ค่อนข้างทันสมัย

3
“ รายการอาร์กิวเมนต์ยาวเกินไป”: ฉันจะจัดการกับมันได้อย่างไรโดยไม่เปลี่ยนคำสั่งของฉัน
เมื่อฉันเรียกใช้คำสั่งเช่นls */*/*/*/*.jpgฉันได้รับข้อผิดพลาด -bash: /bin/ls: Argument list too long ฉันรู้ว่าทำไมสิ่งนี้เกิดขึ้น: มันเป็นเพราะมีข้อ จำกัด เคอร์เนลกับจำนวนพื้นที่สำหรับการขัดแย้งกับคำสั่ง คำแนะนำมาตรฐานคือการเปลี่ยนคำสั่งที่ฉันใช้เพื่อหลีกเลี่ยงการต้องใช้พื้นที่มากสำหรับการขัดแย้ง (เช่นใช้findและxargs) ถ้าฉันไม่ต้องการเปลี่ยนคำสั่งล่ะ? ถ้าฉันต้องการใช้คำสั่งเดียวกันต่อไป ฉันจะทำสิ่งต่าง ๆ "แค่ทำงาน" โดยไม่ได้รับข้อผิดพลาดนี้ได้อย่างไร มีโซลูชั่นอะไรบ้าง?

3
ทำการเปลี่ยนแปลง / sys ถาวรระหว่างบูท
ฉันต้องการ"echo 1 > /sys/kernel/mm/ksm/run"ขัดรองเท้าระหว่างรองเท้า ฉันรู้ว่าฉันสามารถแก้ไข/etc/sysctl.confเพื่อให้/procการเปลี่ยนแปลงระบบแฟ้มยังคงมีอยู่ /sysแต่ตอนนี้ดูเหมือนจะไม่ทำงาน ฉันจะทำให้การเปลี่ยนแปลงนี้อยู่รอดได้อย่างไร

3
เขียนไฟล์ที่มีอยู่ใหม่เพื่อให้มันถูกแทนที่ด้วยเวอร์ชั่นใหม่แบบ atom เพียงครั้งเดียวเท่านั้น
ฉันจำได้ว่าอ่านที่ไหนสักแห่งที่เคยมีใน Unices บางวิธีที่จะเปิดไฟล์ที่มีอยู่สำหรับการเขียนด้วยค่าสถานะที่ขอให้เคอร์เนลใช้เวอร์ชั่นเก่า (สำหรับกระบวนการอื่น ๆ ที่เข้าถึงมันเพื่ออ่าน) จนกระทั่ง "ใหม่ "รุ่นเขียนอย่างสมบูรณ์ (ปิด fd) จากจุดที่ไฟล์ปรากฏเป็นรุ่นใหม่ กล่าวอีกนัยหนึ่งกระบวนการอื่นอาจเห็นเวอร์ชันเก่าหรือกระบวนการใหม่ไม่เคยเขียนไม่สมบูรณ์ ใครบางคนที่มีความรู้สามารถชี้ให้ฉันอ้างอิงได้หรือไม่?

2
glibc เวอร์ชั่นใหม่สามารถใช้กับเคอร์เนลเก่าได้หรือไม่?
เห็นได้ชัดว่า glibc สามารถคอมไพล์ด้วย--enable-kernelเพื่อสนับสนุนเคอร์เนลเวอร์ชันที่เก่ากว่า อย่างไรก็ตามฉันไม่สามารถค้นหาข้อมูลเกี่ยวกับเคอร์เนลเวอร์ชันใดบ้างที่รองรับกับ glibc รุ่นใดรุ่นหนึ่ง เป็นการดีที่ฉันต้องการดูเมทริกซ์ความเข้ากันได้สำหรับทุก glibc (2.x) และเคอร์เนล (2.6.x) มันมีอยู่หรือไม่ หากไม่มีอยู่อาจเป็นเพราะ glibc ทุกรุ่น (ในช่วง 5 ปีที่ผ่านมา) สนับสนุนเมล็ดทั้งหมดตั้งแต่ 2.6.0? (Arch = x86-64 หากมีความสำคัญ)

6
การคอมไพล์ GNU / Linux ด้วยการเพิ่มประสิทธิภาพ -O3
ได้มีการกล่าวว่าการรวบรวมเครื่องมือ GNU และเคอร์เนล Linux พร้อม-O3ตัวเลือกการเพิ่มประสิทธิภาพ gcc จะสร้างข้อผิดพลาดที่แปลกและแปลกใหม่ จริงป้ะ? มีใครลองดูบ้างหรือว่ามันเป็นเรื่องหลอกลวง?

1
ฉันจะเมานท์ระบบไฟล์ด้วยขนาดบล็อก 4KB ได้อย่างไร
ฉันดึงฮาร์ดดิสก์ 3TB ออกจาก WD Mybook Live NAS ตารางพาร์ติชันมีดังนี้: Model: ATA WDC WD30EZRS-11J (scsi) Disk /dev/sdb: 3001GB Sector size (logical/physical): 512B/4096B Partition Table: gpt Number Start End Size File system Name Flags 3 15.7MB 528MB 513MB primary 1 528MB 2576MB 2048MB ext3 primary raid 2 2576MB 4624MB 2048MB ext3 primary raid …
18 linux  kernel  ext4  nas 

3
อะไรคือความแตกต่างระหว่างเคอร์เนลที่ไม่ต้องเสียภาษี
อะไรคือความแตกต่างระหว่างเคอร์เนล "แบบไม่ยึดเอาเสียก่อน", "ยึดเอาเสีย" และ "เลือกเฉพาะพื้นที่" หวังว่าใครบางคนสามารถหลั่งน้ำตาแสงนี้
18 linux  kernel 

2
วิธีการตรวจสอบว่าเคอร์เนล Linux เปิดใช้งาน“ Retpoline” หรือไม่
สำหรับช่องโหว่ด้านความปลอดภัย "Spectre" นั้นมีการแนะนำ "Retpoline" เพื่อเป็นวิธีการลดความเสี่ยง อย่างไรก็ตามฉันได้อ่านโพสต์ที่กล่าวถึง: หากคุณสร้างเคอร์เนลโดยไม่มีCONFIG_RETPOLINEคุณจะไม่สามารถสร้างโมดูลที่มี retpoline และคาดหวังให้โหลด - เนื่องจากสัญลักษณ์ thunk ไม่ได้ถูกส่งออก หากคุณสร้างเคอร์เนลด้วย retpoline คุณสามารถโหลดโมดูลที่ไม่ได้สร้างด้วย retpoline ได้สำเร็จ ( ที่มา ) มีวิธีที่ง่ายและธรรมดา / ทั่วไป / แบบครบวงจรในการตรวจสอบว่าเคอร์เนล "Retpoline" เปิดใช้งานหรือไม่? ฉันต้องการทำสิ่งนี้เพื่อให้ผู้ติดตั้งของฉันสามารถใช้งานบิลด์โมดูลของเคอร์เนลที่จะติดตั้งได้

4
ทำไมการจัดการเหตุการณ์ของระบบปฏิบัติการบางระบบจึงเขียนด้วย asm แทนที่จะเป็น c
คำถามของฉันคือทำไมทุกวันนี้การจัดการเหตุการณ์ของระบบปฏิบัติการบางอย่างยังคงเขียนในภาษาแอสเซมบลีแทนที่จะเป็นภาษาระดับสูงกว่าเช่น C เมื่อเคอร์เนลเขียนเองส่วนใหญ่เป็น C
17 kernel  c  assembly 

4
วิธีบังคับให้เคอร์เนลของ Linux“ หยุด” (หรือเกือบหยุดนิ่ง) เป็นเวลาสองสามร้อยมิลลิวินาที
เรากำลังเรียกใช้กระบวนการแบบเรียลไทม์บนเคอร์เนลที่ไม่ใช่แบบเรียลไทม์ (CentOS 6) และนี่อาจจะไม่เปลี่ยนแปลง เรามีแอพพลิเคชั่นวิดีโอสตรีมมิ่งที่ต้องการปริมาณการรับส่งข้อมูล PCIe ประมาณ 500 MB / s จาก FPGA ที่กำหนดเองอย่างต่อเนื่องเป็นเวลา 1.5 ชั่วโมงต่อครั้ง แอปพลิเคชั่นทำงานได้ดี - ส่วนใหญ่ อย่างไรก็ตามเรามีสถานการณ์ที่ดูเหมือนว่าเคอร์เนลจะหยุดตอบสนองต่อการให้บริการ PCIe หรือหน่วยความจำร้องขอสูงสุด 500 มิลลิวินาทีในแต่ละครั้ง สิ่งนี้ดูเหมือนว่าจะเกิดขึ้นในระหว่างการระเบิดไฟล์ IO จากเธรดอื่น ฉันพบว่ามันเป็นไปไม่ได้ที่จะพยายามทำซ้ำปัญหานี้โดยการทำไฟล์ดัมมี่จำนวนมาก IO จากพื้นที่ผู้ใช้ขณะที่แอปพลิเคชันหลักทำงานอยู่ มีวิธีบังคับ (จำลอง) "หยุด" ทั่วโลกของ Linux kernel (โดยเฉพาะการหยุด PCIe หรือการเข้าถึงหน่วยความจำ DDR3 ทั้งหมดหรืออะไรทำนองนั้น) เพื่อให้เราสามารถสร้างปัญหานี้ได้หรือไม่ ขณะนี้เรามีบัฟเฟอร์มากถึง 10 มิลลิวินาทีในหน่วยความจำ FPGA ภายใน แต่ก็ยังไม่เพียงพอ เราสามารถบัฟเฟอร์ไปยัง FPGA …

1
pdflush, kjournald, swapd, interoperate ฯลฯ ทำอย่างไร?
เพิ่งเห็นคำถามที่จุดประกายความคิดนี้ ไม่พบคำตอบจริงๆที่นี่หรือผ่านเครื่อง Google โดยทั่วไปฉันสนใจที่จะรู้ว่าเคอร์เนลสถาปัตยกรรม I / O เป็นชั้น ตัวอย่างเช่นkjournaldส่งไปยังpdflushหรือในทางอื่น ๆ ? ข้อสันนิษฐานของฉันคือpdflush(เป็นแบบทั่วไปสำหรับ I / O ที่เก็บข้อมูลขนาดใหญ่) จะอยู่ในระดับที่ต่ำกว่าและเรียกใช้ SCSI / ATA / คำสั่งใดก็ตามที่จำเป็นในการดำเนินการเขียนจริงและkjournaldจัดการโครงสร้างข้อมูลระบบแฟ้มระดับสูงขึ้นก่อนการเขียน ฉันสามารถดูวิธีอื่น ๆ เช่นกันด้วยการkjournaldเชื่อมต่อโดยตรงกับโครงสร้างข้อมูลของระบบแฟ้มและpdflushตื่นขึ้นมาทุกขณะแล้วเขียนหน้า pagecache สกปรกไปยังอุปกรณ์ผ่านkjournald. อาจเป็นไปได้ว่าทั้งสองไม่โต้ตอบเลยด้วยเหตุผลอื่น โดยทั่วไป:ฉันต้องการวิธีที่จะเห็นภาพ (กราฟหรือเพียงคำอธิบาย) สถาปัตยกรรมพื้นฐานที่ใช้สำหรับการส่ง I / O ไปยังที่เก็บข้อมูลขนาดใหญ่ภายในเคอร์เนลลินุกซ์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.