Snapdragon Samsung Galaxy S9-ს აქვს GPU სტაბილურობის ხარვეზი, რომლის გამოყენება შესაძლებელია დისტანციური გადატვირთვის გასააქტიურებლად

Samsung Galaxy S9 და Galaxy S9+ გამოვიდა რამდენიმე ბაზარზე, მათ შორის აშშ-ში, ჰონგ კონგსა და ლათინური ამერიკის ნაწილებში Qualcomm Snapdragon 845 სისტემით ჩიპზე. ბრიტანულმა ფირმა GraphicsFuzz-მა აღმოაჩინა GPU-ს სტაბილურობის ხარვეზი, რომლის გამოყენება შესაძლებელია ტელეფონის დისტანციური გადატვირთვის/ავარიის გამოსაწვევად.

Ახალი Samsung Galaxy S9 მოიცავს უახლეს Qualcomm Snapdragon 845 სისტემა-ჩიპს რამდენიმე ბაზრისთვის, მათ შორის ჰონგ კონგის, შეერთებული შტატების, კანადასა და ლათინური ამერიკის ნაწილისთვის. Samsung ხშირად ირჩევს უახლეს ფლაგმანურ Qualcomm Snapdragon SoC-ს, ვიდრე მათი შიდა Exynos SoC ზოგიერთ ბაზარზე. ეს ჩვეულებრივ ხდება შეერთებულ შტატებში, გარდა Samsung Galaxy S6-ისა. საშუალო მომხმარებლისთვის, მცირე განსხვავებაა Exynos 9810 და Snapdragon 845 ვარიანტებს შორის. თუმცა, ჩიპსეტებში განსხვავებამ შეიძლება გამოიწვიოს სრულიად განსხვავებული გამოცდილება.

ანანდტექიSnapdragon Galaxy S9-ისა და Exynos Galaxy S9-ის მიმოხილვამ გამოავლინა მკვეთრი განსხვავებები შესრულებაში და ბატარეის ხანგრძლივობა ორ მოდელს შორის, Snapdragon მოდელი ადვილად აჯობა Exynos მოდელს. ამ ორი უაღრესად განსხვავებული ჩიპსეტით, შესრულებაში განსხვავება ამჯერად არ არის ერთადერთი საზრუნავი, იტყობინება ბრიტანეთში დაფუძნებული კომპანია ე.წ.

GraphicsFuzz. GraphicsFuzz არის დამწყები ფირმა, რომელიც სპეციალიზირებულია მოწყობილობებზე GPU საიმედოობის ტესტირებაში. ისინი ავითარებენ ტესტებს გრაფიკის დრაივერებში შეცდომების მოსაძებნად და სთავაზობენ დახმარებას მათ მიერ აღმოჩენილი ნებისმიერი პრობლემის ძირეული მიზეზების დიაგნოსტირებაში. მაგალითად, გუნდმა აღმოაჩინა უსაფრთხოების პრობლემა გავლენას ახდენს ARM დრაივერზე Samsung Galaxy S6-ისთვის, რისთვისაც Google-ის მიერ დაჯილდოვდნენ შეცდომების ბონუტით. Snapdragon Samsung Galaxy S9-ის ტესტირების დროს, GraphicsFuzz იპოვა შეცდომა Adreno 630-ის გრაფიკის დრაივერში, რომელიც მათ საშუალებას აძლევს გამოიწვიოს მთელი ტელეფონის გადატვირთვა მოქმედი WebGL ინტერნეტ გვერდის მეშვეობით Samsung-ის საფონდო ინტერნეტ ბრაუზერით დათვალიერებისას.

კერძოდ, არის შეცდომა Adreno 630-ის კომპლექსური, მაგრამ მოქმედი შაიდერის რენდერირებაში, რომელიც შეიძლება გამოყენებულ იქნას მოწყობილობის გაყინვისა და საბოლოოდ გადატვირთვისთვის. Shader უბრალოდ პროგრამაა, რომელიც GPU-ს აძლევს გამოსახულების გადაცემის საშუალებას. GraphicsFuzz არ დააპროექტა WebGL გვერდი მავნე განზრახვით, რომ გამოეწვია ეს შეცდომა და ამის ნაცვლად თქვა, რომ ის შემთხვევით აღმოაჩინეს მოწყობილობების GPU სტაბილურობის სტანდარტული ტესტირების დროს. მას შემდეგ რაც აღმოაჩინეს, რომ ეს დისტანციური ავარია რეპროდუცირებადი იყო, კომპანიამ მიმართა XDA-დეველოპერები გამჟღავნების პროცესის გასაადვილებლად როგორც Qualcomm-თან, ასევე Samsung-თან.

WebGL Crash Reproduction Snapdragon Samsung Galaxy S9-ზე

სანამ რომელიმე კომპანიის წარმომადგენლებს მივმართავდით, ჩვენ დავადასტურეთ GraphicsFuzzდასკვნები ჩვენს მოწყობილობაზე. GraphicsFuzz შევქმენით სპეციალური ვებგვერდი ჩვენთვის შესამოწმებლად და ჩვენ ავირჩიეთ 5 ყველაზე პოპულარული ინტერნეტ ბრაუზერი Google Play Store-ზე, რათა გვენახა რა მოხდებოდა. ქვემოთ მოყვანილი ცხრილი გვიჩვენებს კომპლექსური შაიდერის რენდერის ეფექტებს 5 სხვადასხვა ვებ ბრაუზერზე.

მოწყობილობა გამოცდილია: Qualcomm Snapdragon 845 Samsung Galaxy S9+ (SM-G965U)

Ოპერაციული სისტემა: Android 8.0.0 Oreo SM-G965U

ვებ ბრაუზერი

შედეგი

Google Chrome v65.0.3325.109

იყინება მხოლოდ ~ 2 წამით

Samsung Internet v7.0.10.46

იყინება და საბოლოოდ იწვევს სრულ გადატვირთვას

Opera v45.1.2246.125351

ყინავს ტელეფონს

Microsoft Edge v1.0.0.1726

იყინება მხოლოდ ~ 3 წამით

Firefox v59.0.2

ბრაუზერი იშლება

ორივე Google Chrome და Microsoft Edge გაყინავს ტელეფონს რამდენიმე წამით და გამოიმუშავებს WebGL შეცდომას, მაგრამ მოწყობილობა საბოლოოდ კარგად იქნება. GraphicsFuzz შეგვატყობინეს, რომ ისინი გარკვეული პერიოდის განმავლობაში განიხილავდნენ Google Chrome-ის გუნდს და შეიტყვეს რომ Chrome ახორციელებს მექანიზმს, რომელიც ამთავრებს GPU პროცესს გარკვეული პერიოდის შემდეგ, რათა თავიდან აიცილოს სრული ტელეფონი ავარია. Opera ყინავს ტელეფონს, მაგრამ არ იწვევს გადატვირთვას. Firefox აპი თავად იშლება, მაგრამ ტელეფონი კარგად არის. და ბოლოს, Samsung ინტერნეტის საშუალებით გვერდზე წვდომა იწვევს ტელეფონის შენელებას, სანამ ტელეფონის სრული გადატვირთვა დაიწყება.

აქ მოცემულია ავარიის ვიდეო დემონსტრირება:

შეცდომის დეტალური ახსნა

GraphicsFuzz ჩაატარა უფრო სიღრმისეული გამოკვლევა, რაც მიუთითებს იმაზე, რომ პრობლემა, რომელიც იწვევს ტელეფონის გადატვირთვას GPU დრაივერში Qualcomm Adreno 630-ისთვის, რომელიც არის Qualcomm Snapdragon 845-ის ნაწილი სისტემა-ჩიპზე. GraphicsFuzz შეაგროვა ავარიის ჟურნალი, რომელიც ჩავრთეთ ქვემოთ. მოკლედ რომ შევაჯამოთ რა ხდება, როდესაც ტელეფონი ახდენს კომპლექსურ შადერს, GPU აყენებს რაღაც სახელწოდებით "ღობე". ღობე გამოიყენება CPU-ს შორის საერთო მეხსიერებაზე წვდომის ორკესტრირებისთვის და GPU. მობილურ GPU-ს, დესკტოპისგან განსხვავებით, აქვს წვდომა იმავე RAM-ზე, როგორც CPU-ზე, ასე რომ, როდესაც თამაში თამაშობს ან რაიმე სხვა რენდერი ხდება, ის იყენებს ღობეს ამ საერთო მეხსიერებაზე წვდომისთვის. მოწყობილობაზე, რომელსაც აქვს დისკრეტული გრაფიკა, GPU-ს აქვს საკუთარი მეხსიერება. ყველა ამჟამინდელი მობილური ტელეფონი იზიარებს ვიდეო მეხსიერებას და შემთხვევითი წვდომის მეხსიერებას RAM-ის ფლეშ მეხსიერებით. პრობლემა აქ არის ის, რომ ღობე ვერ სრულდება, რაც იწვევს ბირთვის პანიკას და იწვევს ტელეფონის გადატვირთვას.

დაასრულეთ ბირთვის პანიკა გადატვირთვამდე

[12681.035590] [2:crtc_commit: 117: 433] kgsl kgsl-3d0: |a6xx_snapshot_gmu| set FENCE toALLOWmode:0
[12681.035839] [2:crtc_commit: 117: 433] kgsl kgsl-3d0: |kgsl_device_snapshot| snapshot created at pa 0x000000016e500000 size 927400
[12681.035993] [0: kworker/u16:5:27740] kgsl kgsl-3d0: |kgsl_snapshot_save_frozen_<wbr />objs| kgsl_snapshot_save_frozen_objs start
[12681.036085][2:crtc_commit: 117: 433]Kernelpanic-notsyncing: !!!FENCETIMEOUT
[12681.036156][2:crtc_commit: 117: 433]CPU: 2 PID: 433 Comm: crtc_commit:117Tainted: GW 4.9.65-13087505#1
[12681.036248][2:crtc_commit: 117: 433]Hardwarename: SamsungSTARQLTEPROJECTRev14 (DT)
[12681.036319][2:crtc_commit: 117: 433]Calltrace:
[12681.036368] [2:crtc_commit: 117: 433] [] dump_backtrace+0x0/0x248
[12681.036438] [2:crtc_commit: 117: 433] [] show_stack+0x18/0x28
[12681.036509] [2:crtc_commit: 117: 433] [] dump_stack+0x98/0xc0
[12681.036578] [2:crtc_commit: 117: 433] [] panic+0x1e0/0x44c
[12681.036646] [2:crtc_commit:117: 433] [] sde_plane_wait_input_fence+<wbr />0x174/0x28c
[12681.036727] [2:crtc_commit:117: 433] [] sde_crtc_atomic_flush+0x1c4/<wbr />0x5e8
[12681.036807] [2:crtc_commit: 117: 433] [] drm_atomic_helper_commit_<wbr />planes+0x19c/0x1fc
[12681.036891] [2:crtc_commit: 117: 433] [] complete_commit+0x74/0x6a4
[12681.036960] [2:crtc_commit:117: 433] [] _msm_drm_commit_work_cb+0x48/<wbr />0x1c4
[12681.037038] [2:crtc_commit: 117: 433] [] kthread_worker_fn+0x78/0x194
[12681.037108] [2:crtc_commit: 117: 433] [] kthread+0xd8/0xf0
[12681.037172] [2:crtc_commit: 117: 433] [] ret_from_fork+0x10/0x20
[12681.037239][2:crtc_commit: 117: 433]Kernelloadedat: 0x800a0000, offsetfromcompile-timeaddress 20000
[12681.037331][2:crtc_commit: 117: 433]SMP: stoppingsecondaryCPUs

წაიკითხე მეტი

GraphicsFuzz თვლის, რომ მიზეზი, რის გამოც ეს პრობლემა მხოლოდ სამსუნგის ინტერნეტ ბრაუზერზე ხდება, არის GPU მაკონტროლებელი. ზოგჯერ GPU შეიძლება დაკიდებული იყოს ხანგრძლივ მოქმედ შადერებზე, ამ შემთხვევაში ბრაუზერს ან ოპერაციულ სისტემას, როგორც წესი, აქვს GPU მაკონტროლებელი, რომელიც იძულებით გადატვირთავს უპასუხო გრაფიკულ დრაივერს. The GraphicsFuzz სატესტო შადერს აქვს რამდენიმე for loop, რამაც შეიძლება მეტი დრო დასჭირდეს რენდერს, მაგრამ ის მაინც მოქმედი shaderა. რამდენიმე სხვა მოწყობილობა, მათ შორის Exynos 9810 Samsung Galaxy S9 Mali-G72 GPU-ით, ახერხებს ამ შაიდერის რენდერირებას. ამრიგად, გუნდი ზე GraphicsFuzz მივიდა დასკვნამდე, რომ ეს შეცდომა ხდება Adreno 630-ის GPU-ს გაუმართავი დრაივერის გამო.

Google Pixel 2 XL Qualcomm Snapdragon 835-ის Adreno 540 GPU-ით, რომელიც მუშაობს Samsung ინტერნეტ ბრაუზერის იგივე ვერსიით, ანელებს დაცოცავს. კარგად — ეს ნიშნავს, რომ ეს შეცდომა შეიძლება იყოს პრობლემა Qualcomm GPU-ის დრაივერის მიერ shader-ის გაცემისას და Samsung Browser-ის დამკვირვებლის არ დასრულებული სერვისი.

იმედია, Qualcomm შეძლებს დიაგნოსტირებას ძირეული პრობლემის დიაგნოზს GPU-ს დრაივერში, რომელიც იწვევს გადატვირთვას და მალე მიაწვდის ფიქსირებულ დრაივერს Samsung-ს. რა თქმა უნდა, შეიძლება გარკვეული დრო დასჭირდეს ამ განახლების საბოლოო მომხმარებლებზე გავრცელებას. იმავდროულად, ჩვენ ველით, რომ Samsung განაახლებს Samsung ინტერნეტ ბრაუზერს, რათა შეამსუბუქოს პრობლემა (ყოველ შემთხვევაში, თავიდან აიცილოს მისი გამოყენება ვებ გვერდის საშუალებით), ემთხვევა Google-ის ქცევას Chrome. მიუხედავად იმისა, რომ ცნობილია, რომ ეს პრობლემა გავლენას მოახდენს Qualcomm Snapdragon 845 Samsung Galaxy S9/S9+-ზე, მას ასევე შეუძლია გავლენა მოახდინოს Snapdragon 845-ის მქონე მეტ მოწყობილობაზე.

თუ გაინტერესებთ საკუთარი მობილური ან დესკტოპ მოწყობილობის GPU საიმედოობის ტესტირება, გუნდი აქ GraphicsFuzz შეადგინა ვებაპლიკაციის დემონსტრაცია, რომელიც საშუალებას გაძლევთ გაუშვათ მათი ზოგიერთი მოქმედი შადერი თქვენს მოწყობილობაზე. ამ ვებგვერდზე წვდომა შეგიძლიათ ამ ბმულის შემდეგ.

გამჟღავნების ვადები

  • 2018 წლის 28 მარტი: GraphicsFuzz მიაღწია XDA-დეველოპერები გვაცნობეთ საკითხის შესახებ. XDA-დეველოპერები გავამრავლეთ საკითხი ჩვენს საკუთარ Samsung Galaxy S9+-ზე (SM-G965U).
  • 2018 წლის 29 მარტი: GraphicsFuzz დაუკავშირდით მეტი დეტალებით და დააყენეთ სპეციალური ვებ გვერდები Qualcomm-ისა და Samsung-ის თანამშრომლებისთვის, რათა გამოეჩინათ შეცდომა
  • 2018 წლის 30 მარტი: XDA-დეველოპერები დაუკავშირდა როგორც Samsung-ს, ასევე Qualcomm-ს მოხსენების სრული დეტალებით. Qualcomm-ის ჩვენი კონტაქტი დაგვიბრუნდა და დაადასტურა, რომ ჩვენი შეტყობინება მიღებული იყო.
  • 2018 წლის 2 აპრილი: ჩვენი Samsung-ის კონტაქტი დაგვიბრუნდა და დაადასტურა, რომ ჩვენი შეტყობინება მიღებული იყო.
  • 2018 წლის 4 აპრილი: ჩვენმა Samsung-ის კონტაქტმა გვირჩია, რომ შეგვეტანა ანგარიში Samsung-ში უსაფრთხოების ანგარიშგება გვერდი. XDA-დეველოპერები შეადგინა მოხსენება და სამსუნგის ინჟინერი დაევალა მოხსენებას.