User Tools

Site Tools


lkmp:lkmp_project_list

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lkmp:lkmp_project_list [2020/05/07 22:10]
ShuahKhanLF
lkmp:lkmp_project_list [2020/06/23 16:10] (current)
ShuahKhanLF
Line 45: Line 45:
  
 **Number of candidates selected for this project: 1** **Number of candidates selected for this project: 1**
 +
 +===== PCI: Remove legacy power management =====
 +The current generic power management framework using ''​struct dev_pm_ops''​
 +was introduced over ten years ago.  The previous "​legacy"​ framework
 +uses ''​.suspend()''​ and ''​.resume()''​ methods in the ''​struct pci_driver''​. ​ We
 +should convert all drivers from the legacy framework to the generic
 +framework and remove the legacy code from the PCI core.  Examples of
 +doing this include:
 +
 +  * [[https://​git.kernel.org/​linus/​8249c47c6ba4|8249c47c6ba4 ("​fm10k:​ use generic PM hooks instead of legacy PCIe power hooks"​)]]
 +  * [[https://​git.kernel.org/​linus/​0e5d3da40055|0e5d3da40055 ("​i40e:​ use newer generic PM support instead of legacy PM callbacks"​)]]
 +  * [[https://​git.kernel.org/​linus/​226e6b866d74|226e6b866d74 ("​gpio:​ pch: Convert to dev_pm_ops"​)]]
 +
 +The drivers can be converted one-by-one and the PCI core code removed
 +when it is no longer used.
 +
 +**Mentor: [[bjorn@helgaas.com|Bjorn Helgaas]]**
 +
 +**Number of candidates selected for this project: 1**
 +
 +===== PCI: Hardening - Fix static analysis errors =====
 +
 +Explore kernel static analysis checkers CocciCheck, Coverity, Sparse, and Smatch. Learn how to run them to find static analysis problems in the PCI sub-system and fix the reported errors. ​   ​
 +
 +**Mentor: [[bjorn@helgaas.com|Bjorn Helgaas]]**
 +
 +**Number of candidates selected for this project: 1**
 +
 +===== Fall 2020 Projects - Apply from CommunityBridge =====
  
 ===== Add KUnit Support for Parameterized Testing ===== ===== Add KUnit Support for Parameterized Testing =====
Line 90: Line 119:
 **Number of candidates applying for this project: 0** **Number of candidates applying for this project: 0**
  
 +===== Add support for Latency Tolerance Reporting _DSM =====
 +Latency Tolerance Reporting is used to help manage ASPM (Active State
 +Power Management). ​ Some of the LTR values are platform-dependent and
 +must be learned from platform firmware. ​ Linux currently does not ask
 +firmware for this information. ​ I don't know exactly how this
 +information needs to be incorporated into the ASPM support, but I think
 +it's something we should figure out.  See the PCI Firmware Spec, r3.2,
 +sec 4.6.6.
 +
 +**Mentor: [[bjorn@helgaas.com|Bjorn Helgaas]]**
 +
 +**Number of candidates applying for this project: 0**
 +
 +
 +===== For a future session =====
 +
 +===== Add PR_SET_VMA support to Linux Kernel =====
 +PR_SET_VMA mechanism is used heavily in Android for naming memory regions. It is passed to the prctl(2) system call along with the range of addresses to be named. The name appears in /​proc/​pid/​maps and can be used to identify memory regions for debugging and accounting purposes. The patch has been carried in the Android tree for several years. The patch needs to be adapted to mainline, improved and finally upstreamed. This project will give the mentee a good understanding of virtual memory area structures in the Linux kernel as the name for the memory region is stored in these structures and there are various cases where a memory map needs to be split or merged depending on its name compared to its immediate neighbors.
 +
 +**Mentor: [[joel@joelfernandes.org|Joel Fernandes]]**
 +
 +**Number of candidates applying for this project: 2**
 +
 +===== Linux kernel trace events in pstore =====
 +Pstore is a subsystem in the Linux kernel that is used to store kernel logs which can retrieved after a machine warm-reboots.
 +
 +Currently, during ftrace tracing, ftrace events in the kernel are lost when a machine hard-locks up. There is a need for writing these events into the pstore so that after a lock up, the trace events that led to the crash can be retrieved from the Pstore after a warm reboot. This has to be done in a
 +scalable way so that tracing a live system does not impact performance of the system -- ftrace is extremely fast. Initial patches posted to write and retrieve events to/from pstore are not scalable due to locking and other issues. Introducing a scalable approach will open up more possibilities for crash analysis. Prototypes from Qualcomm (Sai Prakash) are available as a reference. These prototypes are not merge ready and suffer from scalablity issues but could be used as a starting point. Sai Prakash is presenting work done on the initial set of patches at Linaro Connect: https://​linaroconnectsandiego.sched.com/​event/​Sue7/​event-tracing-and-pstore-with-a-pinch-of-dynamic-debug
 +but further work or re-design of the approach is needed.
 +
 +**Mentor: [[joel@joelfernandes.org|Joel Fernandes]]**
 +
 +**Number of candidates applying for this project: 0**
  
 ===== Compile cross platforms drivers when COMPILE_TEST set ===== ===== Compile cross platforms drivers when COMPILE_TEST set =====
Line 96: Line 158:
  
 **Mentor: [[bankarsandhya512@gmail.com| Sandhya Bankar]]** **Mentor: [[bankarsandhya512@gmail.com| Sandhya Bankar]]**
 +
 +**Number of candidates applying for this project: 0**
 +===== Linux Media - Convert Videobuf v1 to Videobus v2 (9 projects) =====
 +Convert A requirement is that the developer has to have access to devices with use VB1 - either directly or we need to coordinate with someone with has the hardware for testing purposes. There are ~9 drivers that could be converted. Each driver is an independent project and will require 9 mentees.
 +
 +**Mentor: [[mchehab@kernel.org| Mauro Chehab]]**
 +
 +**Number of candidates applying for this project: 0**
 +
 +===== Documentation - Convert (or add) kAPI/uAPI kerneldoc comments =====
 +Convert (or add) kAPI/uAPI kerneldoc comments, replacing or complementing existing .rst files
 +
 +**Mentor: [[mchehab@kernel.org| Mauro Chehab]]**
 +
 +**Number of candidates applying for this project: 0**
 +
 +===== Documentation - Update obsolete .rst files =====
 +Update obsolete documentation files.
 +
 +**Mentor: [[mchehab@kernel.org| Mauro Chehab]]**
  
 **Number of candidates applying for this project: 0** **Number of candidates applying for this project: 0**
  
 +===== For a future session - PCI tasks (don't have the scope for being projects) =====
 ===== PCI: Align ''​pcie_capability_read_word()''​ error returns with other config read accessors ===== ===== PCI: Align ''​pcie_capability_read_word()''​ error returns with other config read accessors =====
 The ''​pci_read_config_word()''​ and similar interfaces set ''​*val = ~0''​ when The ''​pci_read_config_word()''​ and similar interfaces set ''​*val = ~0''​ when
Line 132: Line 215:
  
   * if we exit the loop because ''​reg >= MAX_MCE_REGS'',​ we leak the last reference   * if we exit the loop because ''​reg >= MAX_MCE_REGS'',​ we leak the last reference
- 
-**Mentor: [[bjorn@helgaas.com|Bjorn Helgaas]]** 
- 
-**Number of candidates applying for this project: 0** 
- 
-===== PCI: Remove legacy power management ===== 
-The current generic power management framework using ''​struct dev_pm_ops''​ 
-was introduced over ten years ago.  The previous "​legacy"​ framework 
-uses ''​.suspend()''​ and ''​.resume()''​ methods in the ''​struct pci_driver''​. ​ We 
-should convert all drivers from the legacy framework to the generic 
-framework and remove the legacy code from the PCI core.  Examples of 
-doing this include: 
- 
-  * [[https://​git.kernel.org/​linus/​8249c47c6ba4|8249c47c6ba4 ("​fm10k:​ use generic PM hooks instead of legacy PCIe power hooks"​)]] 
-  * [[https://​git.kernel.org/​linus/​0e5d3da40055|0e5d3da40055 ("​i40e:​ use newer generic PM support instead of legacy PM callbacks"​)]] 
-  * [[https://​git.kernel.org/​linus/​226e6b866d74|226e6b866d74 ("​gpio:​ pch: Convert to dev_pm_ops"​)]] 
- 
-The drivers can be converted one-by-one and the PCI core code removed 
-when it is no longer used. 
  
 **Mentor: [[bjorn@helgaas.com|Bjorn Helgaas]]** **Mentor: [[bjorn@helgaas.com|Bjorn Helgaas]]**
Line 167: Line 231:
 **Number of candidates applying for this project: 0** **Number of candidates applying for this project: 0**
  
-===== Add support for Latency Tolerance Reporting _DSM ===== 
-Latency Tolerance Reporting is used to help manage ASPM (Active State 
-Power Management). ​ Some of the LTR values are platform-dependent and 
-must be learned from platform firmware. ​ Linux currently does not ask 
-firmware for this information. ​ I don't know exactly how this 
-information needs to be incorporated into the ASPM support, but I think 
-it's something we should figure out.  See the PCI Firmware Spec, r3.2, 
-sec 4.6.6. 
  
-**Mentor: [[bjorn@helgaas.com|Bjorn Helgaas]]** +===== Spring 2020 Projects - completed ​=====
- +
-**Number of candidates applying for this project: 0** +
- +
-===== Fall 2020 Projects ===== +
-===== Add PR_SET_VMA support to Linux Kernel ===== +
-PR_SET_VMA mechanism is used heavily in Android for naming memory regions. It is passed to the prctl(2) system call along with the range of addresses to be named. The name appears in /​proc/​pid/​maps and can be used to identify memory regions for debugging and accounting purposes. The patch has been carried in the Android tree for several years. The patch needs to be adapted to mainline, improved and finally upstreamed. This project will give the mentee a good understanding of virtual memory area structures in the Linux kernel as the name for the memory region is stored in these structures and there are various cases where a memory map needs to be split or merged depending on its name compared to its immediate neighbors. +
- +
-**Mentor: [[joel@joelfernandes.org|Joel Fernandes]]** +
- +
-**Number of candidates applying for this project: 2** +
- +
-===== Linux kernel trace events in pstore ===== +
-Pstore is a subsystem in the Linux kernel that is used to store kernel logs which can retrieved after a machine warm-reboots. +
- +
-Currently, during ftrace tracing, ftrace events in the kernel are lost when a machine hard-locks up. There is a need for writing these events into the pstore so that after a lock up, the trace events that led to the crash can be retrieved from the Pstore after a warm reboot. This has to be done in a +
-scalable way so that tracing a live system does not impact performance of the system -- ftrace is extremely fast. Initial patches posted to write and retrieve events to/from pstore are not scalable due to locking and other issues. Introducing a scalable approach will open up more possibilities for crash analysis. Prototypes from Qualcomm (Sai Prakash) are available as a reference. These prototypes are not merge ready and suffer from scalablity issues but could be used as a starting point. Sai Prakash is presenting work done on the initial set of patches at Linaro Connect: https://​linaroconnectsandiego.sched.com/​event/​Sue7/​event-tracing-and-pstore-with-a-pinch-of-dynamic-debug +
-but further work or re-design of the approach is needed. +
- +
-**Mentor: [[joel@joelfernandes.org|Joel Fernandes]]** +
- +
-**Number of candidates applying for this project: 2** +
- +
-===== Linux Media - Convert Videobuf v1 to Videobus v2 (9 projects) ===== +
-Convert A requirement is that the developer has to have access to devices with use VB1 - either directly or we need to coordinate with someone with has the hardware for testing purposes. There are ~9 drivers that could be converted. Each driver is an independent project and will require 9 mentees. +
- +
-**Mentor: [[mchehab@kernel.org| Mauro Chehab]]** +
- +
-**Number of candidates applying for this project: 0** +
-===== Documentation - Convert (or add) kAPI/uAPI kerneldoc comments ===== +
-Convert (or add) kAPI/uAPI kerneldoc comments, replacing or complementing existing .rst files +
- +
-**Mentor: [[mchehab@kernel.org| Mauro Chehab]]** +
- +
-**Number of candidates applying for this project: 1** +
- +
-===== Documentation - Update obsolete .rst files ===== +
-Update obsolete documentation files. +
- +
-**Mentor: [[mchehab@kernel.org| Mauro Chehab]]** +
- +
-**Number of candidates applying for this project: 0** +
- +
-===== Spring 2020 Projects - in progress ​=====+
 ===== Linux dev-tools - Handling Complex Types and Attributes in Coccinelle ===== ===== Linux dev-tools - Handling Complex Types and Attributes in Coccinelle =====
 Coccinelle, developed by Julia Lawall and her group, is a program matching and transformation engine which provides the language SmPL (Semantic Patch Language) for specifying desired matches and transformations in C code. The project proposal would be to improve the management of complex types and attributes (const, <​nowiki>​__user</​nowiki>,​ etc) in the program matching and transformation tool Coccinelle. Currently, complex types are represented incorrectly,​ which makes it impossible to match against them in a general way. Various kinds of attributes are increasingly used in Linux kernel code, and it is important to be able to check these annotations and add them where they are missing. This project is relevant to Linux, Zephyr and many more applications. Coccinelle, developed by Julia Lawall and her group, is a program matching and transformation engine which provides the language SmPL (Semantic Patch Language) for specifying desired matches and transformations in C code. The project proposal would be to improve the management of complex types and attributes (const, <​nowiki>​__user</​nowiki>,​ etc) in the program matching and transformation tool Coccinelle. Currently, complex types are represented incorrectly,​ which makes it impossible to match against them in a general way. Various kinds of attributes are increasingly used in Linux kernel code, and it is important to be able to check these annotations and add them where they are missing. This project is relevant to Linux, Zephyr and many more applications.
Line 242: Line 255:
  
 **Number of candidates working on this project: 3** **Number of candidates working on this project: 3**
 +
 +
  
 ===== Linux Media - Virtual DVB test driver ===== ===== Linux Media - Virtual DVB test driver =====
lkmp/lkmp_project_list.1588889402.txt.gz · Last modified: 2020/05/07 22:10 by ShuahKhanLF