Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Interrupt Affinityについて
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Takuya ASADA
June 28, 2014
Technology
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Interrupt Affinityについて
Takuya ASADA
June 28, 2014
More Decks by Takuya ASADA
See All by Takuya ASADA
僕のIntel NUCが起動しないわけがない
syuu1228
3
4.5k
Introduction to bhyve
syuu1228
1
470
OSv on bhyve
syuu1228
3
460
ruby-virtualmachine
syuu1228
0
310
BHyVeでOSvを起動したい 〜BIOSがなくてもこの先生きのこるには〜
syuu1228
2
910
10GbE時代のネットワークI/O高速化
syuu1228
14
8.9k
Play with UEFI
syuu1228
1
400
仮想化環境での利用者公平性
syuu1228
0
220
/proc/irq/<IRQ>/ smp_affinity
syuu1228
0
500
Other Decks in Technology
See All in Technology
Distributed Transactions Under Fire: Building a Zero-Oversell Flash Sale Platform with Amazon Aurora DSQL
yama3133
0
100
Kiro Crew で始める マルチエージェント開発
miu_crescent
PRO
0
200
フィジカルAIの知識ゼロの僕でも AIを使えばここまでできた
tatsuya1970
0
200
AIエージェントのためのデータ設計
daiz21
0
520
LLMアプリ、 雰囲気で運用してませんか? 〜LLMOpsの現在地〜
taka_aki
1
550
AIレビュー時代に必要なのは、SLOで引く撤退ライン
nobuoooo
0
150
どんな手を使っても絶対間に合わせるスケジューラ
asari194617
0
1.5k
本番に近いテストをもっと手軽に - Postmanで広がるAPIテストの世界 / Expanding the World of API Testing with Postman
yokawasa
1
130
hookで自作する Claude Code の「実況ボード」
shinyasaita
2
230
RapidCopy2 Matrix I/Oエンジンによるファイルコピーソフトウェアの設計と実装
kengosawa2
1
480
atproto spaces概要
yamarten
0
110
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
1
880
Featured
See All Featured
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
250
Evolving SEO for Evolving Search Engines
ryanjones
0
270
Deep Space Network (abreviated)
tonyrice
0
270
My Coaching Mixtape
mlcsv
0
300
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
First, design no harm
axbom
PRO
2
1.3k
Context Engineering - Making Every Token Count
addyosmani
9
1.1k
Color Theory Basics | Prateek | Gurzu
gurzu
0
440
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
630
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
2
3.8k
Optimising Largest Contentful Paint
csswizardry
37
3.9k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Transcript
Interrupt Affinity ʹ͍ͭͯ @syuu1228
Interrupt Affinity? ࠓ࣌ͷී௨ͷ1$ϚϧνίΞͰ͋Δ σόΠε̍ɿ*32̍ɿ$16͍ͬͺ͍ ͱ͍͏ؔʹͳ͍ͬͯΔ σόΠεͲ͜ʹׂΓࠐΜͰ͍Δͷʁ -JOVYͲͷ$16ʹׂΓࠐ·͍ͤͯΔͷʁ ˠ*OUFSSVQU"⒏OJUZ
Interrupt Affinityͷ ϢʔβΠϯλϑΣʔε
$ cat /proc/interrupts CPU0 CPU1 0: 36843 61973 IO-APIC-edge timer
1: 518 591 IO-APIC-edge i8042 8: 1 0 IO-APIC-edge rtc0 9: 387 321 IO-APIC-fasteoi acpi 12: 11236 79 IO-APIC-edge i8042 16: 0 0 IO-APIC-fasteoi uhci_hcd:usb6 17: 12 11 IO-APIC-fasteoi uhci_hcd:usb7 18: 0 0 IO-APIC-fasteoi uhci_hcd:usb8 19: 6531 235 IO-APIC-fasteoi ehci_hcd:usb2 20: 0 0 IO-APIC-fasteoi uhci_hcd:usb3 21: 85 69 IO-APIC-fasteoi uhci_hcd:usb4 22: 0 0 IO-APIC-fasteoi uhci_hcd:usb5 23: 20 15 IO-APIC-fasteoi ehci_hcd:usb1 40: 0 0 PCI-MSI-edge PCIe PME, pciehp 41: 0 0 PCI-MSI-edge PCIe PME, pciehp 42: 0 0 PCI-MSI-edge PCIe PME, pciehp 43: 33199 31756 PCI-MSI-edge ahci 44: 19 1583 PCI-MSI-edge eth0 45: 10 11 PCI-MSI-edge mei 46: 41104 59303 PCI-MSI-edge i915 47: 170268 708 PCI-MSI-edge iwlwifi 48: 78 77 PCI-MSI-edge snd_hda_intel NMI: 1406 1430 Non-maskable interrupts $16ຖͷׂΓࠐΈ౷ܭΛදࣔ /proc/interrupts
/proc/irq/*/smp_affinity ׂΓࠐΈઌ$16܈ΛϏοτͰࢦఆ͢Δ ͱɺࢦఆ͞Εͨ$16܈ʹϥϯυϩϏ ϯͰׂΓࠐ·ΕΔʢϏοτ͕୯ҰͳΒ ৗʹͦͷ$16ׂΓࠐΈʣ # cat /proc/irq/43/smp_affinity 3 #
echo 1 > /proc/irq/43/smp_affinity ͜ΕΛॻ͖͑ΔͱׂΓࠐΈઌ$16͕มΘΔ
LinuxͰͷσϑΥϧτ શ$16ͷϏοτ͕༗ޮʹͳ͓ͬͯΓɺ ͭͷׂΓࠐΈ͕શ$16ϥϯυϩ Ϗϯ͢Δ ϥϯυϩϏϯׂΓࠐΈʹରԠ͠ͳ͍1$ Ͱ͋Δ$16ݻఆతʹׂΓࠐΉ ʢDQV ʣ
/proc/irq/*/smp_affinity_list ώϡʔϚϯϦʔμϒϧͳTNQ@B⒏OJUZ # echo ff > /proc/irq/43/smp_affinity # cat /proc/irq/43/smp_affinity_list
0-7
/proc/irq/*/smp_affinity_hint σόΠευϥΠό͔ΒϢʔβϥϯυσʔ ϞϯʢJSRCBMBODFʣ͜ͷ*32ʹద ͳ$16NBTLΛ௨
irqbalance ඵ͝ͱʹγεςϜෛՙঢ়گΛνΣο Ϋɺ֤*32ͷTNQ@B⒏OJUZΛॻ͖͑ ͯ$16ෛՙΛެฏʹ͢ΔσʔϞϯ POFTIPUϞʔυͰىಈ࣌ʹదͱࢥ ΘΕΔΛTNQ@B⒏OJUZʹઃఆͯ͠ FYJU
MultiQueue NICͷׂΓࠐΈ $16ຖʹૹड৴ΩϡʔɺΩϡʔຖʹ .4*9ׂΓࠐΈΛ࣋ͭ ਖ਼͍͠TNQ@B⒏OJUZݻఆతʹܾ·ͬ ͍ͯΔ ෳ$16ࢄΒͯ͠ͳΒͳ͍ 47: 7602 0
0 0 0 3 23 0 PCI-MSI-edge p1p1-TxRx-0 48: 0 7602 0 0 0 0 13 12 PCI-MSI-edge p1p1-TxRx-1 49: 12 0 7605 0 0 0 10 0 PCI-MSI-edge p1p1-TxRx-2 50: 0 12 0 7602 3 0 10 0 PCI-MSI-edge p1p1-TxRx-3 51: 0 0 12 0 7602 3 10 0 PCI-MSI-edge p1p1-TxRx-4 52: 0 0 0 20 0 7602 13 0 PCI-MSI-edge p1p1-TxRx-5 53: 0 0 0 0 12 0 7612 3 PCI-MSI-edge p1p1-TxRx-6 54: 3 0 0 0 0 13 10 7602 PCI-MSI-edge p1p1-TxRx-7 55: 0 2 0 0 0 0 2 0 PCI-MSI-edge p1p1
ιʔείʔυ QSPDJOUFSSVQUT GTQSPDJOUFSSVQUTD QSPDJSR LFSOFMJSRQSPDD JSRCBMBODF IUUQTHJUIVCDPNJSRCBMBODF JSRCBMBODF
PCΞʔΩςΫνϟʹ͓͚Δ ׂΓࠐΈϧʔςΟϯά
PC্ͷׂΓࠐΈίϯϙʔωϯτ CPU Local APIC CPU Local APIC CPU Local APIC
ICH 8259A PIC Timer I/O APIC Legacy PCI Devices MSI(-X) Capable Devices IPI Legacy PCI 8259A Intr MSI(-X) PCI-LPC bridge SuperIO Chip
Local APIC $16ຖͷׂΓࠐΈίϯτϩʔϥɹׂΓࠐΈΛڐՄɾϚεΫ͠ ͨΓɺ&0*ͨ͠Γ γεςϜશମͰҰҙͳ"1*$*%Λ࣋ͭ ଞͷ-"1*$ׂΓࠐΊΔʢ*1**OUFSQSPDFTTPS*OUFSSVQU CPU Local APIC CPU
Local APIC CPU Local APIC ICH 8259A PIC Timer I/O APIC Legacy PCI Devices MSI(-X) Capable Devices IPI Legacy PCI 8259A Intr MSI(-X) PCI-LPC bridge SuperIO Chip
LAPIC - Interrupt Command Register(ICR) 7FDUPSɿѼઌ-"1*$ͷϕΫλ൪߸ %FMJWFSZ.PEFɿׂΓࠐΈૹϞʔυ %FTUJOBUJPO.PEFɿѼઌϞʔυ %FMJWFS4UBUVTɿલճͷׂΓࠐΈͷૹঢ়گ 5SJHHFS.PEFɿϨϕϧτϦΨʗΤοδτϦΨ
%FTUJOBUJPO4IPSUIBOEɿѼઌͷϚεΫํࣜʢࣗ$16ΛϚεΫɾ ΞϯϚεΫͳͲʣ %FTUJOBUJPO*%ɿѼઌ
ιʔείʔυ *$3 BSDIYJODMVEFBTNJQJI
σʔλγʔτ *OUFMBOE*" "SDIJUFDUVSFT4PGUXBSF %FWFMPQFS.BOVBMT *OUFSSVQU$PNNBOE 3FHJTUFS *$3
ิɿx2APIC -"1*$*%ैདྷCJU͕ͩͬͨɺίΞͷ૿ՃʹΑ ΓϏοτ͕Γͳ͘ͳͬͯ͠·ͬͨͷͰCJU ϏοτΛՃ ͜ΕʹͬͯɺҎ߱Ͱղઆ͢Δ֤ϨδελͰͷׂΓ ࠐΈઌ-"1*$ࢦఆϑΟʔϧυͷΞυϨε෯Ϗοτ Ճ͞Εͨ
σʔλγʔτ *OUFM"SDIJUFDUVSFY"1*$4QFDJpDBUJPO (-044"3:
I/O APIC ݶΒΕͨຊͷཧׂΓࠐΈઢΛ֤1$*σόΠεͰڞ༗ ʢ1$*FʹཧׂΓࠐΈઢແ͘ɺϝοηʔδϯάʹΑͬͯ*0"1*$ܦ༝ׂΓࠐΈΛ ΤϛϡϨʔτʣ ֤*32ΛͲͷ-"1*$సૹ͢Δ͔Λఆٛ͢Δ3FEJSFDUJPO5BCMF ʢ*0"1*$্ͷϨδελ܈ʣΛ࣋ͭ 1$*σόΠε*0"1*$Λ௨ͯ͡-"1*$ׂΓࠐΈϝοηʔδΛૹ৴ CPU Local
APIC CPU Local APIC CPU Local APIC ICH 8259A PIC Timer I/O APIC Legacy PCI Devices MSI(-X) Capable Devices IPI Legacy PCI 8259A Intr MSI(-X) PCI-LPC bridge SuperIO Chip
I/O APIC - REDIR_TBL 7FDUPSɿѼઌ-"1*$ͷϕΫλ൪߸ %FMJWFSZ.PEFɿׂΓࠐΈૹϞʔυ %FTUJOBUJPO.PEFɿѼઌϞʔυ %FMJWFSZ4UBUVTɿલճͷׂΓࠐΈͷૹঢ়گ *OUFSSVQU*OQVU1JO1PMBSJUZɿׂΓࠐΈϐϯͷۃੑ 3FNPUF*33ɿࣗಈతʹ&0*͢Δ͔Ͳ͏͔
5SJHHFS.PEFɿϨϕϧτϦΨʗΤοδτϦΨ .BTLɿׂΓࠐΈϚεΫ %FTUJOBUJPO*%ɿѼઌ
ιʔείʔυ 3&%*3@5#- BSDIYLFSOFMBQJDJP@BQJDD
σʔλγʔτ *OUFM*0$POUSPMMFS)VC *$) 'BNJMZ%BUBTIFFU 3&%*3@5#-3FEJSFDUJPO 5BCMF
ϨΨγσόΠε ϨΨγσόΠε͔ΒͷׂΓࠐΈΛ1$*-1$CSJEHFͰ1$*ม 1$*σόΠεಉ༷ʹ*0"1*$Λ௨ͯ͡-"1*$ׂΓࠐΈϝοηʔ δΛૹ৴ ޓੑͷͨΊ"ʹଓ͞Ε͍ͯΔͱࢥΘΕΔ CPU Local APIC CPU Local
APIC CPU Local APIC ICH 8259A PIC Timer I/O APIC Legacy PCI Devices MSI(-X) Capable Devices IPI Legacy PCI 8259A Intr MSI(-X) PCI-LPC bridge SuperIO Chip
8259A PIC লུʢ·ͩͬͯ·͕͢ɺ͏Θͳ ͍Ͱ͠ΐ͏ʣ
MSI(-X) capable PCI devices ֤σόΠε͕ҙͷͷ*32Λ࣋ͯΔ ֤*32ͷׂΓࠐΈઌ-"1*$1$*σόΠεͷ1$* $POpHVSBUJPO4QBDFʹ࣋ͭ 1$*σόΠε-"1*$ׂΓࠐΈϝοηʔδΛૹ৴ CPU Local
APIC CPU Local APIC CPU Local APIC ICH 8259A PIC Timer I/O APIC Legacy PCI Devices MSI(-X) Capable Devices IPI Legacy PCI 8259A Intr MSI(-X) PCI-LPC bridge SuperIO Chip
MSI Capability on PCI configuration space Device ID Vendor ID
… Reserved Cap. Pointer … Capability x CAP ID(x) Next Pointer … Capability y CAP ID(yy) Next Pointer … MSICTL CAP ID(D0h) Next Pointer MSIAR MSIDR
MSI Capability - MSICTL লུʢ.4*༗ޮɺCJUɺෳׂΓࠐ Έ༗ޮͳͲͷϑΟʔϧυʣ
MSI Capability - MSIAR %FTUJOBUJPO.PEFɿѼઌϞʔυ 3FEJSFDUJPO)JOUɿMPHJDBMNPEFˍ -PX1SJͰͷSFEJSFDUJPOΛ༗ޮԽ %FTUJOBUJPO*%ɿѼઌ
MSI Capability - MSIDR 7FDUPSɿѼઌ-"1*$ͷϕΫλ൪߸ %FMJWFSZ.PEFɿׂΓࠐΈૹϞʔυ %FMJWFSZ4UBUVTɿׂΓࠐΈঢ়گ 5SJHHFS.PEFɿϨϕϧτϦΨʗΤο δτϦΨ
MSI-Xͷ߹ লུʢϑΟʔϧυ͕֦ு͞Εͯࢁׂ ΓࠐΈ͕࣋ͯΔ͕ɺΈಉ͡ʣ
ιʔείʔυ .4* 9 $BQBCJMJUZ BSDIYLFSOFMBQJDJP@BQJDD
σʔλγʔτ *OUFM$IJQTFUBOE*OUFM $IJQTFU .4*$5-.4*$POUSPM 3FHJTUFS .4*"3.4*"EESFTT 3FHJTUFS .4*%3.4*%BUB3FHJTUFS
֤ํࣜͰڞ௨ͳཁૉ ҎԼͷࡾͭͷϑΟʔϧυͰѼઌ͕ࢦఆ ͞ΕΔ %FTUJOBUJPO.PEF %FMJWFSZ.PEF %FTUJOBUJPO*%
ׂΓࠐΈઌͷࢦఆํ๏ 1IZTJDBM%FTUJOBUJPO.PEF %FTUJOBUJPO'JFMEʹ"1*$*%Λࢦఆ ʮৗʹಉ͡$16ׂΓࠐΈʯΛ࣮ݱ -PHJDBM%FTUJOBUJPO.PEF 'MBU.PEFM %FTUJOBUJPO'JFMEͷCJUͰѼઌ-"1*$܈ͷൣғΛදݱ %FMJWFSZ.PEF 'JYFE
ࢦఆൣғͷશͯͷ-"1*$ׂΓࠐΈ -PXFTU1SJPSJUZ ࢦఆൣғͷதͰɺ࠷513ʢ5BTL1SJPSJUZ3FHJTUFSʣͷ͕ ͍$16ׂΓࠐΈ
Logical Destination Mode (Cluster Model) Y"1*$ͷ߹ɺ CJU$MVTUFS*% CJU-PHJDBM*% 'MBU.PEFMʹൺͯଟ͘ͷ$16Λ αϙʔτͰ͖Δ
Lowest Priority Mode ࢦఆൣғͷதͰɺ࠷513ʢ5BTL 1SJPSJUZ3FHJTUFSʣͷ͕͍-"1*$ ׂΓࠐΈ ୠ͠ɺ-JOVYͰಈ࡞தʹ513Λߋ৽͠ͳ ͍ˠશ-"1*$ͷ513શͯಉ͡ ࠷খͷ513Λ࣋ͭ-"1*$͕ෳ͋Δ ߹ϥϯυϩϏϯͰ̍ͭબ
σʔλγʔτ *OUFMBOE*""SDIJUFDUVSFT4PGUXBSF%FWFMPQFS .BOVBMT *OUFSSVQU$PNNBOE3FHJTUFS *$3 1IZTJDBM%FTUJOBUJPO.PEF -PHJDBM%FTUJOBUJPO.PEF -PXFTU1SJPSJUZ%FMJWFSZ.PEF *OUFM"SDIJUFDUVSFY"1*$4QFDJpDBUJPO
-PHJDBM%FTUJOBUJPO3FHJTUFS *OUFM*0$POUSPMMFS)VC *$) 'BNJMZ%BUBTIFFU "VUPNBUJD3PUBUJPO.PEF &RVBM1SJPSJUZ%FWJDFT 4QFDJpD3PUBUJPO.PEF 4QFDJpD1SJPSJUZ
echo 1 > /proc/irq/<IRQ>/ smp_affinityͨ࣌͠ʹԿ͕ى͖Δͷ͔ .4*ͳ1$*FσόΠεͰ͔֬ΊͯΈΔ *OUFM1SP FF 1$*$POpHVSBUJPO4QBDFSPPUͳΒ
TZTCVTQDJ͔ΒಡΊΔ ˠϢʔβϥϯυ͔ΒಡΊΔ ˠ͔ͯ͠͠ɿMTQDJ
# lspci -vvvv -s 00:19.0 00:19.0 Ethernet controller: Intel Corporation
82567LM Gigabit Network Connection (rev 03) Subsystem: Lenovo Device 20ee Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 44 Region 0: Memory at f2600000 (32-bit, non-prefetchable) [size=128K] Region 1: Memory at f2625000 (32-bit, non-prefetchable) [size=4K] Region 2: I/O ports at 1840 [size=32] Capabilities: [c8] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME- Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+ Address: 00000000fee0300c Data: 41b9 Capabilities: [e0] PCI Advanced Features AFCap: TP+ FLR+ AFCtrl: FLR- AFStatus: TP- Kernel driver in use: e1000e Kernel modules: e1000e ͘ృͬͨॴ͕.4*ͷϑΟʔϧυ͕ͩɺ͜Εͩ ͱಡΊͳ͍ͷͰMTQDJΛGPSLͯ͠.4*ϑΟʔϧ υΛදࣔ͢ΔπʔϧΛ࡞ IUUQTHJTUHJUIVCDPN
# gcc -lpci msireg.c! # ./a.out 00:19.0! Message Signalled Interrupts:
64bit+ Queue=0/0 Enable+! address_hi=0! address_lo=fee0300c dest_mode=logical redirection=lowpri dest_id=3! data=41b9 trigger=edge level=assert delivery_mode=lowpri vector=185 -PHJDBMNPEFͰ-PXQSJɺEFTUJEɺ WFDUPSʹͳ͍ͬͯΔ # echo 1 > /proc/irq/44/smp_affinity! # ./a.out 00:19.0! Message Signalled Interrupts: 64bit+ Queue=0/0 Enable+! address_hi=0! address_lo=fee0100c dest_mode=logical redirection=lowpri dest_id=1! data=41b9 trigger=edge level=assert delivery_mode=lowpri vector=185 EFTU@JE͕ʹॻ͖Θͬͨ
Affinityηοτ࣌ͷΧʔωϧͷڍಈ γεςϜάϩʔόϧͳ%FTUJOBUJPO.PEFͱ %FMJWFSZ.PEFͷઃఆΛอ࣋ ʢBQJDJSR@EFTU@NPEF BQJDJSR@EFMJWFSZ@NPEFʣ "⒏OJUZηοτ࣌ʹ͜ͷΛࢀরɺ%FTUJOBUJPO *%ͱซͤͯॻ͖ࠐΉ OBUJWF@DPNQPTF@NTJ@NTH BSDIYLFSOFMBQJDJP@BQJDD
OSॳظԽ࣌ͷׂΓࠐΈϞʔυઃఆ ڥʹΑͬͯҟͳΔυϥΠόΛ༻ BSDIYLFSOFMBQJDBQJD@qBU@D YBQJD@DMVTUFSD YBQJD@QIZTDʜ BQJD@qBUʢඇYBQJDϞʔυʣ %FMJWFSZ.PEF-PX1SJ %FTUJOBUJPO.PEF-PHJDBM BQJD@QIZTqBUʢඇYBQJDϞʔυ
$164ʣ %FMJWFSZ.PEF'JYFE %FTUJOBUJPO.PEF1IZTJDBM BQJD@YBQJD@QIZTʢYBQJDϞʔυ "$1*Ͱ1IZTJDBMϞʔυࢦఆʣ ಉ্ ϥϯυϩϏϯׂΓࠐΈͰ͖ΔڥҰఆ݅Λຬͨͨ͠߹ͷΈ
*OUFMBOE*""SDIJUFDUVSFT4PGUXBSF %FWFMPQFS.BOVBMT *OUFM*0$POUSPMMFS)VC *$) 'BNJMZ %BUBTIFFU *OUFM"SDIJUFDUVSFY"1*$4QFDJpDBUJPO *OUFM$IJQTFUBOE*OUFM$IJQTFU MJOVY%PDVNFOUBUJPO*32B⒏OJUZUYU 6OEFSTUBOEJOHUIF-JOVY,FSOFM
SE&EJUJPO 1$*-PDBM#VT4QFDJpDBUJPO3FWJTJPO ࢀߟࢿྉ
ࠓ·Ͱʹ·ͱΊͨࢿྉ ࠷ۙͷ1$ΞʔΩςΫνϟʹ͓͚ΔׂΓࠐΈϧʔςΟϯάͷΈ QSPDJSR*32TNQ@B⒏OJUZͷॻ͖͑Ͱ1$*ίϯϑΟάϨʔ γϣϯۭؒͲͷΑ͏ʹॻ͖ΘΔ͔ QSPDJSR*32TNQ@B⒏OJUZ *OUFSSVQUTPOYW ϋΠύʔόΠβͷ࡞ΓํʙͪΌΜͱཧղ͢ΔԾԽٕज़ʙୈ̐ճ* 0ԾԽʮׂΓࠐΈฤɾͦͷ̍ʯ